aboutsummaryrefslogtreecommitdiff
path: root/cordova/node_modules/shelljs/src/ln.js
diff options
context:
space:
mode:
Diffstat (limited to 'cordova/node_modules/shelljs/src/ln.js')
-rwxr-xr-xcordova/node_modules/shelljs/src/ln.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/cordova/node_modules/shelljs/src/ln.js b/cordova/node_modules/shelljs/src/ln.js
new file mode 100755
index 0000000..a7b9701
--- /dev/null
+++ b/cordova/node_modules/shelljs/src/ln.js
@@ -0,0 +1,53 @@
+var fs = require('fs');
+var path = require('path');
+var common = require('./common');
+var os = require('os');
+
+//@
+//@ ### ln(options, source, dest)
+//@ ### ln(source, dest)
+//@ Available options:
+//@
+//@ + `s`: symlink
+//@ + `f`: force
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ ln('file', 'newlink');
+//@ ln('-sf', 'file', 'existing');
+//@ ```
+//@
+//@ Links source to dest. Use -f to force the link, should dest already exist.
+function _ln(options, source, dest) {
+ options = common.parseOptions(options, {
+ 's': 'symlink',
+ 'f': 'force'
+ });
+
+ if (!source || !dest) {
+ common.error('Missing <source> and/or <dest>');
+ }
+
+ source = path.resolve(process.cwd(), String(source));
+ dest = path.resolve(process.cwd(), String(dest));
+
+ if (!fs.existsSync(source)) {
+ common.error('Source file does not exist', true);
+ }
+
+ if (fs.existsSync(dest)) {
+ if (!options.force) {
+ common.error('Destination file exists', true);
+ }
+
+ fs.unlinkSync(dest);
+ }
+
+ if (options.symlink) {
+ fs.symlinkSync(source, dest, os.platform() === "win32" ? "junction" : null);
+ } else {
+ fs.linkSync(source, dest, os.platform() === "win32" ? "junction" : null);
+ }
+}
+module.exports = _ln;