UNPKG

sharechat-setup

Version:

A generic cli to setup mundane node tasks

39 lines (37 loc) 1.2 kB
#!/usr/bin/env node import cp from 'child_process'; import fs from 'fs-extra'; import { getUserPkgManager, InstallationDependenciesMap, PackageManager, } from './helpers/getUserPackageManager'; import prompt from 'prompt'; import chalk from 'chalk'; const init = async () => { prompt.start(); prompt.get( [ { name: 'packageManager', description: `Whats your choice of package manager? should be one of ${Object.values( PackageManager )}`, enum: Object.values(PackageManager), required: false, default: 'npm', }, ], async (err, result) => { const packageManager = result.packageManager as unknown as PackageManager; await cp.execSync(InstallationDependenciesMap[packageManager]('husky')); await cp.execSync('npx husky install'); await cp.execSync(`npm pkg set scripts.prepare="husky install"`); await cp.execSync(`npx husky add .husky/pre-commit "npm test"`); console.log('===================================='); console.log(chalk.bgMagenta.magenta('Successfully installed husky')); console.log('===================================='); } ); }; init();