electron-builder-signo
Version:
Electron-builder sign function that uses signo as a backend
38 lines (37 loc) • 1.25 kB
JavaScript
import fsp from 'fs/promises';
import path from 'path';
import env from 'env-var';
import SignoClient from 'signo-client';
import log from './log.js';
const sign = async (signTask) => {
log.info(`Signing ${path.basename(signTask.path)} with ${signTask.hash}`);
const config = {
server: '',
signee: 0,
secret: '',
engine: 0
};
try {
config.server = env.get('SIGNO_SERVER').required().asUrlString();
config.signee = env.get('SIGNO_SIGNEE').required().asIntPositive();
config.secret = env.get('SIGNO_SECRET').required().asString();
config.engine = env.get('SIGNO_ENGINE').required().asIntPositive();
}
catch (e) {
if (e instanceof env.EnvVarError) {
log.error(`Configuration error: ${e.message}`);
}
throw new Error('Signo configuration error');
}
const signer = new SignoClient(config);
try {
const file = await fsp.readFile(signTask.path);
const signed = await signer.sign(file);
await fsp.writeFile(signTask.path, signed);
}
catch (e) {
log.error(`Failed to sign executable: ${e.message}`);
throw new Error('Failed to sign executable');
}
};
export default sign;