diff --git a/.eslintrc.yml b/.eslintrc.yml index c4a349d..dab2ab9 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -161,7 +161,7 @@ rules: # https://eslint.org/docs/rules/ - error - max: 1 no-native-reassign: error - no-negated-condition: error + no-negated-condition: 'off' no-negated-in-lhs: error no-nested-ternary: error no-new: error diff --git a/action.yml b/action.yml index 79d2cfa..7c9fd9e 100644 --- a/action.yml +++ b/action.yml @@ -28,3 +28,4 @@ inputs: runs: using: "node16" main: "lib/index.js" + post: "lib/index.js" diff --git a/lib/index.js b/lib/index.js index 54a1263..d668a03 100644 --- a/lib/index.js +++ b/lib/index.js @@ -2720,6 +2720,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getSshDirectory = void 0; const fs_1 = __importDefault(__nccwpck_require__(147)); const path_1 = __importDefault(__nccwpck_require__(17)); const core = __importStar(__nccwpck_require__(186)); @@ -2738,6 +2739,24 @@ catch (err) { * main function */ function main() { + if (!isPost()) { + setup(); + } + else { + cleanup(); + } +} +/** + * is post process? + * @returns Yes/No + */ +function isPost() { + return Boolean(core.getState("isPost")); +} +/** + * setup function + */ +function setup() { // parameters const key = core.getInput("key", { required: true, @@ -2788,19 +2807,46 @@ function main() { } console.log(`SSH key has been stored to ${sshDirName} successfully.`); } +/** + * cleanup function + */ +function cleanup() { + // remove ".ssh" directory + const sshDirName = removeSshDirectory(); + console.log(`SSH keys in ${sshDirName} has been removed successfully.`); +} /** * create ".ssh" directory * @returns directory name */ function createSshDirectory() { - const home = getHomeDirectory(); - const dirName = path_1.default.resolve(home, ".ssh"); + const dirName = getSshDirectory(); fs_1.default.mkdirSync(dirName, { recursive: true, mode: 0o700, }); return dirName; } +/** + * remove ".ssh" directory + * @returns removed directory name + */ +function removeSshDirectory() { + const dirName = getSshDirectory(); + fs_1.default.rmSync(dirName, { + recursive: true, + force: true, + }); + return dirName; +} +/** + * get SSH directory + * @returns SSH directory name + */ +function getSshDirectory() { + return path_1.default.resolve(getHomeDirectory(), ".ssh"); +} +exports.getSshDirectory = getSshDirectory; /** * get home directory * @returns home directory name diff --git a/src/main.ts b/src/main.ts index 34a4536..b6ce5cd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -25,6 +25,25 @@ try { * main function */ function main(): void { + if (!isPost()) { + setup(); + } else { + cleanup(); + } +} + +/** + * is post process? + * @returns Yes/No + */ +function isPost(): boolean { + return Boolean(core.getState("isPost")); +} + +/** + * setup function + */ +function setup(): void { // parameters const key = core.getInput("key", { required: true, @@ -80,13 +99,22 @@ function main(): void { console.log(`SSH key has been stored to ${sshDirName} successfully.`); } +/** + * cleanup function + */ +function cleanup(): void { + // remove ".ssh" directory + const sshDirName = removeSshDirectory(); + + console.log(`SSH keys in ${sshDirName} has been removed successfully.`); +} + /** * create ".ssh" directory * @returns directory name */ function createSshDirectory(): string { - const home = getHomeDirectory(); - const dirName = path.resolve(home, ".ssh"); + const dirName = getSshDirectory(); fs.mkdirSync(dirName, { recursive: true, mode: 0o700, @@ -94,6 +122,27 @@ function createSshDirectory(): string { return dirName; } +/** + * remove ".ssh" directory + * @returns removed directory name + */ +function removeSshDirectory(): string { + const dirName = getSshDirectory(); + fs.rmSync(dirName, { + recursive: true, + force: true, + }); + return dirName; +} + +/** + * get SSH directory + * @returns SSH directory name + */ +export function getSshDirectory(): string { + return path.resolve(getHomeDirectory(), ".ssh"); +} + /** * get home directory * @returns home directory name