1
0
Fork 0
mirror of https://github.com/shimataro/ssh-key-action.git synced 2025-06-19 22:52:10 +10:00
ssh-key-action/src/main.ts
2019-09-19 06:55:40 +09:00

56 lines
1.1 KiB
TypeScript

import * as fs from "fs";
import * as path from "path";
import * as core from "@actions/core";
/**
* main function
*/
function main(): void
{
try
{
const home = getHomeDirectory();
const dirName = path.resolve(home, ".ssh");
fs.mkdirSync(dirName, {
recursive: true,
mode: 0o700,
});
const privateKey = core.getInput("private-key") as string;
const publicKey = core.getInput("public-key") as string;
const name = core.getInput("name") as string;
const fileName = path.join(dirName, name);
fs.writeFileSync(fileName, privateKey, {
mode: 0o400,
});
fs.writeFileSync(`${fileName}.pub`, publicKey, {
mode: 0o444,
});
console.log(`SSH key has been stored to ${fileName} successfully.`);
}
catch(err)
{
core.setFailed(err.message);
}
}
/**
* get home directory
* @returns home directory
*/
function getHomeDirectory(): string
{
const homeEnv = process.platform == "win32" ? "USERPROFILE" : "HOME";
const home = process.env[homeEnv];
if(home === undefined)
{
throw new Error(`${homeEnv} is not defined`);
}
return home;
}
main();