UNPKG

mondorepo

Version:

Management for collections of packages across teams

48 lines (41 loc) 1.74 kB
const Command = require('switchit').Command; const chalk = require('chalk'); const Logger = require('../../utils/Logger'); const FileUtils = require('../../utils/FileUtil'); class Add extends Command { execute (params) { let me = this; let mondo = me.root(); let forks = mondo.settings.forks; let replace = false; if (forks[params.repoName]) { if (params.force) { replace = true; Logger.warn(`Replaced ${chalk.bold.yellow(forks[params.repoName])} with ${chalk.bold.yellow(params.forkName)} as fork for ${chalk.bold.yellow(params.repoName)}.`) } else { Logger.error(`${chalk.bold.yellow(forks[params.repoName])} is already configured as fork for ${chalk.bold.yellow(params.repoName)}.`); if (forks[params.repoName] !== params.forkName) { Logger.info(''); Logger.info(`Use ${chalk.bold.yellow('--force')} to overwrite it.`); } return; } } forks[params.repoName] = params.forkName; FileUtils.writeFile(mondo.settingsPath, JSON.stringify(mondo.settings, null, ' ')); if (!replace) { Logger.info(`Added ${chalk.bold.yellow(params.forkName)} as known fork for ${chalk.bold.yellow(params.repoName)}.`); } } } Add.define({ help: { '': 'Sets the fork to use for a given repository', repoName: 'The name of the repository', forkName: 'The fork to use (when referring to that repository)', force: 'Overwrite existing values' }, switches: '[force:boolean=false]', parameters: '{repoName} {forkName}' }); module.exports = Add;