From 0e3540cf8f6b48c0c7ecc02d59a2c75bc49a5fd1 Mon Sep 17 00:00:00 2001 From: Artyom Belousov Date: Thu, 10 Apr 2025 12:30:21 +0300 Subject: [PATCH] Use SSH_CMD_ARGS in SCRIPT_BEFORE and SCRIPT_AFTER --- src/index.js | 4 ++-- src/remoteCmd.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/index.js b/src/index.js index 7266355..92d819e 100644 --- a/src/index.js +++ b/src/index.js @@ -25,7 +25,7 @@ const run = async () => { } // Check Script before if (scriptBefore) { - await remoteCmdBefore(scriptBefore, privateKeyPath, scriptBeforeRequired); + await remoteCmdBefore(scriptBefore, privateKeyPath, scriptBeforeRequired, sshCmdArgs); } /* eslint-disable object-property-newline */ await sshDeploy({ @@ -34,7 +34,7 @@ const run = async () => { }); // Check script after if (scriptAfter) { - await remoteCmdAfter(scriptAfter, privateKeyPath, scriptAfterRequired); + await remoteCmdAfter(scriptAfter, privateKeyPath, scriptAfterRequired, sshCmdArgs); } }; diff --git a/src/remoteCmd.js b/src/remoteCmd.js index 70f7656..408a88c 100644 --- a/src/remoteCmd.js +++ b/src/remoteCmd.js @@ -12,7 +12,7 @@ const handleError = (message, isRequired, callback) => { }; // eslint-disable-next-line max-len -const remoteCmd = async (content, privateKeyPath, isRequired, label) => new Promise((resolve, reject) => { +const remoteCmd = async (content, privateKeyPath, isRequired, label, sshCmdArgs) => new Promise((resolve, reject) => { const uuid = crypto.randomUUID(); const filename = `local_ssh_script-${label}-${uuid}.sh`; try { @@ -21,7 +21,7 @@ const remoteCmd = async (content, privateKeyPath, isRequired, label) => new Prom const rsyncStdout = (process.env.RSYNC_STDOUT || '').substring(0, dataLimit); console.log(`Executing remote script: ssh -i ${privateKeyPath} ${sshServer}`); exec( - `DEBIAN_FRONTEND=noninteractive ssh -p ${(remotePort || 22)} -i ${privateKeyPath} -o StrictHostKeyChecking=no ${sshServer} 'RSYNC_STDOUT="${rsyncStdout}" bash -s' < ${filename}`, + `DEBIAN_FRONTEND=noninteractive ssh -p ${(remotePort || 22)} -i ${privateKeyPath} ${sshCmdArgs} ${sshServer} 'RSYNC_STDOUT="${rsyncStdout}" bash -s' < ${filename}`, (err, data = '', stderr = '') => { if (err) { const message = `⚠️ [CMD] Remote script failed: ${err.message}`; @@ -42,6 +42,6 @@ const remoteCmd = async (content, privateKeyPath, isRequired, label) => new Prom }); module.exports = { - remoteCmdBefore: async (cmd, privateKeyPath, isRequired) => remoteCmd(cmd, privateKeyPath, isRequired, 'before'), - remoteCmdAfter: async (cmd, privateKeyPath, isRequired) => remoteCmd(cmd, privateKeyPath, isRequired, 'after') + remoteCmdBefore: async (cmd, privateKeyPath, isRequired, sshCmdArgs) => remoteCmd(cmd, privateKeyPath, isRequired, 'before', sshCmdArgs), + remoteCmdAfter: async (cmd, privateKeyPath, isRequired, sshCmdArgs) => remoteCmd(cmd, privateKeyPath, isRequired, 'after', sshCmdArgs) };