UNPKG

specit

Version:

Automatically generates an RPM Spec file for your Node.js project

64 lines (49 loc) 1.76 kB
var _ = require('lodash'); var fs = require('fs'); var path = require('path'); var archiver = require('./archiver'); var createServiceFile = require('./service'); var createSpecFile = require('./spec'); var files = require('./files'); function generateServiceFile(root, pkg) { var serviceFileContents = createServiceFile(pkg); var serviceFilePath = files.serviceFile(root, pkg); fs.writeFileSync(serviceFilePath, serviceFileContents); return serviceFilePath; } function generateSpecFile(root, specit, specdir, pkg, release) { var specFileContents = createSpecFile(root, specit, pkg, release); var specFilePath = files.specFile(specdir, pkg); fs.writeFileSync(specFilePath, specFileContents); return specFilePath; } function addCustomFieldsToPackage(pkg, customName) { if (customName) { return _.extend({}, pkg, { name: customName }); } return pkg; } function relativeToRoot(root, files) { return files.map(function (file) { return path.relative(root, file); }); } module.exports = function (root, pkg, specit, customName, cb) { var customPackage = addCustomFieldsToPackage(pkg, customName); var specsDirectory = files.specsDirectory(root); var sourcesDirectory = files.sourcesDirectory(root); var result = []; fs.mkdirSync(specsDirectory); fs.mkdirSync(sourcesDirectory); var sourcesArchive = files.sourcesArchive(root, customPackage); result.push(sourcesArchive); // if(specit.systemd) // result.push(generateServiceFile(root, customPackage)); result.push(generateSpecFile(root, specit, specsDirectory, customPackage, specit.release)); archiver.compress(root, sourcesArchive, function (err) { if (err) { return cb(err); } cb(null, relativeToRoot(root, result)); }); };