UNPKG

ut-tools

Version:

Build and Release management automation package.

52 lines (49 loc) 2.38 kB
/* eslint no-console:0 */ const path = require('path'); const helpers = require('./helpers'); module.exports = async(args) => { helpers.isUt5Directory().then(isUt5Directory => { return helpers.devModules().then(modules => modules.concat('implementation') .map(folder => { let fullpath = folder; if (folder === 'implementation') { folder = require(path.resolve(helpers.currentDir, 'package.json')).name; fullpath = helpers.currentDir; } else { folder = path.relative(helpers.currentDir, folder); }; const preCommit = path.resolve(fullpath, '.git', 'hooks', 'pre-commit'); helpers.exists(preCommit).then(exists => { console.log(helpers.skip({ icon: '🐟 ', msg: `pre-commit hook for [${helpers.Bold}${folder}${helpers.Reset}] already exists!` })); return exists; }).catch(e => { const hook = `#!/bin/sh NODE_PATH=${helpers.devFolder} npm run lint`; helpers.writeFile(preCommit, hook).then(written => { const ok = () => console.log(helpers.ok({ icon: '🎣 ', status: 'SUCCESS', msg: `pre-commit hook created for [${helpers.Bold}${folder}${helpers.Reset}]` })); if (process.platform !== 'win32') { return helpers.execute('chmod', ['+x', preCommit]).then(ok()) .catch(e => console.log(helpers.error({ msg: `Hook is created, but the file is not executable ${e}` }))); } else return ok(); }).catch(e => { console.log(helpers.error({msg: `Error creating hook for [${helpers.Bold}${folder}${helpers.Reset}] ⚓️`})); return e; }); }); }) ); }).catch(err => { console.log(helpers.error({msg: `Couldn't find directory dev or node_modules in ${helpers.currentDir}`})); return err; }); };