1
0
Fork 0
mirror of https://github.com/shimataro/ssh-key-action.git synced 2025-06-19 22:52:10 +10:00

use module

This commit is contained in:
shimataro 2023-10-10 16:22:19 +09:00
parent 31d4b8b483
commit 83659583bf
No known key found for this signature in database
GPG key ID: BE92C05736911A9D
6 changed files with 434 additions and 284 deletions

88
src/common.ts Normal file
View file

@ -0,0 +1,88 @@
import fs from "fs";
import path from "path";
import * as core from "@actions/core";
const STATE_PHASE = "phase";
const STATE_BACKUP_SUFFIX = "backup-suffix";
/**
* current phase
* @returns phase
*/
export function getPhase(): string {
const phase = core.getState(STATE_PHASE);
// next: post
core.saveState(STATE_PHASE, "post");
if (phase === "") {
return "main";
}
return phase;
}
/**
* generate backup suffix name
* @returns backup suffix
*/
export function generateBackupSuffix(): string {
const dirName = getSshDirectory();
if (!fs.existsSync(dirName)) {
// do nothing if .ssh does not exist
return "";
}
const backupSuffix = `.bak-${Date.now()}`;
core.saveState(STATE_BACKUP_SUFFIX, backupSuffix);
return backupSuffix;
}
/**
* get backup suffix name
* @returns backup suffix (if not, empty string)
*/
export function getBackupSuffix(): string {
return core.getState(STATE_BACKUP_SUFFIX);
}
/**
* get SSH directory
* @returns SSH directory name
*/
export function getSshDirectory(): string {
return path.resolve(getHomeDirectory(), ".ssh");
}
/**
* get home directory
* @returns home directory name
*/
function getHomeDirectory(): string {
const homeEnv = getHomeEnv();
const home = process.env[homeEnv];
if (home === undefined) {
throw Error(`${homeEnv} is not defined`);
}
if (home === "/github/home") {
// Docker container
return "/root";
}
return home;
}
/**
* get HOME environment name
* @returns HOME environment name
*/
function getHomeEnv(): string {
if (process.platform === "win32") {
// Windows
return "USERPROFILE";
}
// macOS / Linux
return "HOME";
}