ssh-deploy/src/rsyncCli.js

48 lines
1.2 KiB
JavaScript
Raw Normal View History

const { sync: commandExists } = require('command-exists');
const { get: nodeCmd } = require('node-cmd');
const validateRsync = (callback = () => {}) => {
2020-04-11 18:42:37 +03:00
const rsyncCli = commandExists('rsync');
2022-12-30 16:29:31 +03:00
console.log('⚠️ [CLI] Rsync doesn\'t exists. Start installation with "apt-get" \n');
console.log('nodeCmd: ', nodeCmd);
if (!rsyncCli) {
nodeCmd(
'sudo apt-get --no-install-recommends install rsync',
(err, data, stderr) => {
if (err) {
console.log('⚠️ [CLI] Rsync installation failed. Aborting ... ', err.message);
process.abort();
} else {
console.log('✅ [CLI] Rsync installed. \n', data, stderr);
callback();
}
}
);
} else {
callback();
}
};
const validateInputs = (inputs) => {
const inputKeys = Object.keys(inputs);
const validInputs = inputKeys.filter((inputKey) => {
const inputValue = inputs[inputKey];
if (!inputValue) {
console.error(`⚠️ [INPUTS] ${inputKey} is mandatory`);
}
return inputValue;
});
if (validInputs.length !== inputKeys.length) {
2020-09-19 00:26:31 +03:00
console.error('⚠️ [INPUTS] Inputs not valid, aborting ...');
process.abort();
}
};
module.exports = {
validateRsync,
validateInputs
2020-09-19 00:26:31 +03:00
};