privacy
Version: 
CLI utility to modify a package.json to use a private npm registry via publishConfig
58 lines (47 loc) • 1.33 kB
JavaScript
var fs = require('fs')
var path = require('path')
var dotjson = require('dotjson')
var optimist = require('optimist')
  .usage(require('heredoc')(function(){/*
Usage: $0 [options]
  set module's registry to global default
      $0
  get module registry
      $0 -r, --registry
  set module registry
      $0 -r, --registry <registry url>
  get global registry
    $0-g, --global
  set global registry
    $0 -g, --global <registry url>
*/}))
  .alias('h','help')
    .boolean('h')
    .describe('h', 'show help')
  .alias('r','registry')
    .describe('r', 'gets or sets the current module\'s registry url')
  .alias('l','licenseText')
    .describe('l', 'The text to save in LICENSE as a SPDX-compatible license file')
    .default('l', '(c) '+(new Date()).getFullYear()+' Jane Doe')
var argv = optimist.argv
if (argv.help) {
  optimist.showHelp()
  process.exit()
}
const LICENSE_FILENAME = 'LICENSE'
const LICENSE_VALUE = 'LicenseRef-LICENSE'
const LOCAL = path.resolve(process.cwd(), 'package.json')
if (argv.registry || argv.licenseText) {
  if (argv.registry) {
    dotjson.set(LOCAL, {
      'publishConfig.registry': argv.registry
    })
  }
  if (argv.licenseText) {
    fs.writeFileSync(LICENSE_FILENAME, argv.licenseText)
    dotjson.set(LOCAL, {
      'license': LICENSE_VALUE
    })
  }
  process.exit()
}