speculate
Version:
Automatically generates an RPM Spec file for your Node.js project
31 lines (26 loc) • 800 B
JavaScript
;
const truncate = require('./truncate');
const defaultServiceProperties = {
environment: {},
serviceOptions: {
ExecStart: '/usr/bin/node --run start'
},
unitOptions: {}
};
function convertToKeyValueFromSpec(spec, prop) {
return Object.entries(Object.assign({}, defaultServiceProperties[prop], spec && spec[prop] || {})).map(([key, value]) => {
return { key, value };
});
}
module.exports = function (pkg) {
return Object.assign(
{
name: pkg.name,
username: truncate(pkg.name),
description: pkg.description,
environment: convertToKeyValueFromSpec(pkg.spec, 'environment'),
serviceOptions: convertToKeyValueFromSpec(pkg.spec, 'serviceOptions'),
unitOptions: convertToKeyValueFromSpec(pkg.spec, 'unitOptions')
}
);
};