#!/usr/bin/env node require('lego-colorful').colorful(); var program = require('commander'); var log = require('lego-log'); var legorc = require('legorc'); var resolve = require('path').resolve; var join = require('path').join; var exists = require('fs').existsSync; var readJSON = require('fs-extra').readJSONSync; var symlink = require('fs-symlink'); var rimraf = require('rimraf').sync; program.usage(''); program.on('--help', function() { console.log(' Examples:'.to.bold.blue.color); console.log(); console.log(' $', 'lego link'.to.magenta.color, '/path/to/other/pkg'); console.log(); }); program.parse(process.argv); var cwd = process.cwd(); var dir = program.args[0]; var pkg; if (!dir) { return program.help(); } dir = resolve(cwd, dir); if (exists(join(dir, 'package.json'))) { pkg = readJSON(join(dir, 'package.json')); } if (!pkg || !pkg.lego) { console.log(); log.error('miss', 'package.json or "lego" key'); process.exit(1); } var to = join(cwd, legorc.get('install.path'), pkg.name, pkg.version); var from = join(dir); rimraf(to); symlink(from, to, 'junction').then(function() { console.log('%s > %s', to, from); });