const { exec } = require('child_process'); function sign({ path, name, certUrl, clientId, tenantId, clientSecret, certName, timestampServer, version }) { return new Promise((resolve, reject) => { const command = `azuresigntool.exe sign -kvu "${certUrl}" -kvi "${clientId}" -kvt "${tenantId}" -kvs "${clientSecret}" -kvc "${certName}" -tr "${timestampServer}" -v "${path}"`; exec(command, (error, stdout, stderr) => { if (error) { console.error(`Error: ${error}`); return reject(error); } console.log(`stdout: ${stdout}`); console.error(`stderr: ${stderr}`); resolve(); }); }); } exports.default = async function(options) { const certUrl = process.env.AZURE_KEY_VAULT_URI; const clientId = process.env.AZURE_CLIENT_ID; const tenantId = process.env.AZURE_TENANT_ID; const clientSecret = process.env.AZURE_CLIENT_SECRET; const certName = process.env.AZURE_CERT_NAME; const timestampServer = 'http://timestamp.globalsign.com/tsa/r6advanced1'; await sign({ path: options.path, name: "jan-win-x64", certUrl, clientId, tenantId, clientSecret, certName, timestampServer, version: options.version }); };