PATH:
usr
/
local
/
lib
/
node_modules
/
pm2
/
node_modules
/
shelljs
/
src
var fs = require('fs'); var path = require('path'); var common = require('./common'); common.register('ln', _ln, { cmdOptions: { 's': 'symlink', 'f': 'force', }, }); //@ //@ ### ln([options,] 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) { if (!source || !dest) { common.error('Missing <source> and/or <dest>'); } source = String(source); var sourcePath = path.normalize(source).replace(RegExp(path.sep + '$'), ''); var isAbsolute = (path.resolve(source) === sourcePath); dest = path.resolve(process.cwd(), String(dest)); if (fs.existsSync(dest)) { if (!options.force) { common.error('Destination file exists', { continue: true }); } fs.unlinkSync(dest); } if (options.symlink) { var isWindows = process.platform === 'win32'; var linkType = isWindows ? 'file' : null; var resolvedSourcePath = isAbsolute ? sourcePath : path.resolve(process.cwd(), path.dirname(dest), source); if (!fs.existsSync(resolvedSourcePath)) { common.error('Source file does not exist', { continue: true }); } else if (isWindows && common.statFollowLinks(resolvedSourcePath).isDirectory()) { linkType = 'junction'; } try { fs.symlinkSync(linkType === 'junction' ? resolvedSourcePath : source, dest, linkType); } catch (err) { common.error(err.message); } } else { if (!fs.existsSync(source)) { common.error('Source file does not exist', { continue: true }); } try { fs.linkSync(source, dest); } catch (err) { common.error(err.message); } } return ''; } module.exports = _ln;
[-] popd.js
[edit]
[-] ln.js
[edit]
[-] echo.js
[edit]
[-] which.js
[edit]
[-] find.js
[edit]
[-] exec-child.js
[edit]
[-] sed.js
[edit]
[-] cp.js
[edit]
[+]
..
[-] mv.js
[edit]
[-] tail.js
[edit]
[-] cd.js
[edit]
[-] to.js
[edit]
[-] dirs.js
[edit]
[-] cat.js
[edit]
[-] grep.js
[edit]
[-] common.js
[edit]
[-] test.js
[edit]
[-] head.js
[edit]
[-] tempdir.js
[edit]
[-] pushd.js
[edit]
[-] touch.js
[edit]
[-] uniq.js
[edit]
[-] toEnd.js
[edit]
[-] chmod.js
[edit]
[-] mkdir.js
[edit]
[-] error.js
[edit]
[-] ls.js
[edit]
[-] exec.js
[edit]
[-] sort.js
[edit]
[-] rm.js
[edit]
[-] set.js
[edit]
[-] pwd.js
[edit]