Code coverage report for lib/commands/unpublish.js

Statements: 50% (14 / 28)      Branches: 37.5% (6 / 16)      Functions: 75% (3 / 4)      Lines: 52% (13 / 25)      Ignored: none     

All files » lib/commands/ » unpublish.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47    1 1 1   1 1   1           1 1   1                       1 1                     1     1  
'use strict'
 
var log = require('winston')
var api = require('../api.js')
var util = require('../util.js')
 
function unpublish(args) {
  var forceDeleteAll = false
 
  Iif ( !args.package ) {
    log.error( 'missing required parameter: package name' )
    log.info( unpublish.usage )
    return
  }
 
  api.info(args.package, null, function(err, mlpm) {
    Iif (err) return log.error(err)
 
    Iif  ( !args.version || mlpm.versions.length === 1 ) {
      if ( args.force ) {
        forceDeleteAll = true
        log.info('Warning, unpublishing entire project using --force ...')
      } else {
        log.error( 'refusing to unpublish all versions of ' + args.package + '\n' +
                     'run with --force to do this.\n' )
        log.info( unpublish.usage )
        return
      }
    }
 
    util.getAuth(args.admin, function(err, auth) {
      Eif (err) return log.error(err)
 
      api.unpublish(args.package, args.version, forceDeleteAll, auth, function(err) {
        if (err) return log.error(err)
 
        log.info( 'unpublished ' + args.package + (forceDeleteAll ? '' : '@' + args.version) )
      })
    })
  })
}
 
unpublish.usage = 'mlpm unpublish <package> [-f/--force]\n' +
                  'mlpm unpublish <package>@<version>'
 
module.exports = unpublish