Mini Shell

Direktori : /usr/lib/node_modules/npm/node_modules/promzard/example/npm-init/
Upload File :
Current File : //usr/lib/node_modules/npm/node_modules/promzard/example/npm-init/init.js

var PZ = require('../../promzard').PromZard
var path = require('path')
var input = path.resolve(__dirname, 'init-input.js')

var fs = require('fs')
var package = path.resolve(__dirname, 'package.json')
var pkg

fs.readFile(package, 'utf8', function (er, d) {
  if (er) ctx = {}
  try { ctx = JSON.parse(d); pkg = JSON.parse(d) }
  catch (e) { ctx = {} }

  ctx.dirname = path.dirname(package)
  ctx.basename = path.basename(ctx.dirname)
  if (!ctx.version) ctx.version = undefined

  // this should be replaced with the npm conf object
  ctx.config = {}

  console.error('ctx=', ctx)

  var pz = new PZ(input, ctx)

  pz.on('data', function (data) {
    console.error('pz data', data)
    if (!pkg) pkg = {}
    Object.keys(data).forEach(function (k) {
      if (data[k] !== undefined && data[k] !== null) pkg[k] = data[k]
    })
    console.error('package data %s', JSON.stringify(data, null, 2))
    fs.writeFile(package, JSON.stringify(pkg, null, 2), function (er) {
      if (er) throw er
      console.log('ok')
    })
  })
})

Zerion Mini Shell 1.0