UNPKG

1.27 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.10.0
2(function() {
3 var fs, link, mkdirp, userHome;
4
5 fs = require('fs-extra');
6
7 mkdirp = require('mkdirp');
8
9 userHome = require('user-home');
10
11 link = function(opts) {
12 var dest, dir;
13 opts = opts || {};
14 if (!opts.collection) {
15 throw new Error("`collection` is required.");
16 } else if (!opts.module) {
17 throw new Error("`module` is required.");
18 } else if (!opts.version) {
19 throw new Error("`version` is required.");
20 } else if (!opts.src) {
21 throw new Error("`src` is required.");
22 }
23 dir = userHome + "/.autocode/module/" + opts.collection + "/" + opts.module;
24 dest = dir + "/" + opts.version;
25 if (fs.existsSync(dest)) {
26 if (opts.force !== true) {
27 throw new Error("Module already installed at: " + dest + ". Use -f to force link, but be careful: this entire directory will be destroyed.");
28 }
29 fs.removeSync(dest);
30 }
31 if (!fs.existsSync(dir)) {
32 mkdirp.sync(dir);
33 }
34 console.log("Linking " + opts.collection + "." + opts.module + "...");
35 console.log("Source: " + opts.src);
36 console.log("Destination: " + dest);
37 fs.symlinkSync(opts.src, dest);
38 return console.log("Done.");
39 };
40
41 module.exports = link;
42
43}).call(this);