const fs = require('mz/fs');
const git = require('../../git');
module.exports = (pkgFile) => {
return Promise.all([
git.commit,
git.repo,
fs.readFile(pkgFile)
]).then((result) => {
const commit = result[0];
const repo = result[1];
const pkg = JSON.parse(result[2].toString());
let version = pkg.version.split('.');
const size = 3;
if (version.length < size) {
const extend = Array(size - version.length ).fill('0');
version = version.concat(extend);
}
version = version.map((element) => {
return !Number.isInteger(parseInt(element)) ? '0' : element;
})
const subVersion = version[2].split('-');
subVersion[0] = parseInt(subVersion[0]) + 1;
subVersion[1] = commit + 1;
if (subVersion[1] === undefined) {
subVersion[1] = 0;
}
version[2] = subVersion.join('-');
pkg.version = version.join('.');
if (!pkg.hasOwnProperty('corifeus')) {
pkg.corifeus = {};
}
const prefix = pkg.corifeus.prefix || '';
pkg.name = `${prefix}${repo}`;
pkg.engines = { "node" : ">=7.8.0" };
pkg.homepage = `https://pages.corifeus.tk/${repo}`;
const newPkgFile = JSON.stringify(pkg, null, 4);
return fs.writeFile(pkgFile, newPkgFile).then((result) => pkg);
});
}