ssh-deploy/src/inputs.js

46 lines
1.3 KiB
JavaScript
Raw Normal View History

const { snakeToCamel } = require('./helpers');
const inputNames = [
'REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT',
'SSH_PRIVATE_KEY', 'DEPLOY_KEY_NAME',
'SOURCE', 'TARGET', 'ARGS', 'SSH_CMD_ARGS', 'EXCLUDE',
'SCRIPT_BEFORE', 'SCRIPT_AFTER'];
const githubWorkspace = process.env.GITHUB_WORKSPACE;
2023-02-21 14:43:52 +01:00
const remoteUser = process.env.REMOTE_USER || process.env.INPUT_REMOTE_USER;
const defaultInputs = {
target: `/home/${remoteUser}/`,
deployKeyName: `deploy_key_${remoteUser}_${Date.now()}`
};
const inputs = {
githubWorkspace
};
2022-12-31 02:43:17 +01:00
inputNames.forEach((input) => {
const inputName = snakeToCamel(input.toLowerCase());
2023-02-21 15:36:29 +01:00
const inputVal = process.env[input] || process.env[`INPUT_${input}`] || defaultInputs[inputName];
let extendedVal = inputVal;
// eslint-disable-next-line default-case
switch (inputName) {
case 'source':
2023-02-21 15:36:29 +01:00
extendedVal = inputVal.split(' ').map((src) => `${githubWorkspace}/${src}`);
break;
case 'args':
2023-02-21 15:36:29 +01:00
extendedVal = inputVal.split(' ');
break;
case 'exclude':
case 'sshCmdArgs':
2023-02-21 15:36:29 +01:00
extendedVal = inputVal.split(',').map((item) => item.trim());
break;
}
inputs[inputName] = extendedVal;
});
inputs.sshServer = `${inputs.remoteUser}@${inputs.remoteHost}`;
inputs.rsyncServer = `${inputs.remoteUser}@${inputs.remoteHost}:${inputs.target}`;
module.exports = inputs;