93 lines
1.5 KiB
Markdown
93 lines
1.5 KiB
Markdown
---
|
|
title: Shell.js
|
|
layout: default
|
|
---
|
|
|
|
### Require
|
|
|
|
require 'shelljs/global'
|
|
|
|
### Paths
|
|
|
|
cd 'dir'
|
|
|
|
mkdir 'dir'
|
|
mkdir '-p', 'dir'
|
|
|
|
### File manip
|
|
|
|
cp 'src', 'dest'
|
|
cp '-rf', 'src', 'dest'
|
|
|
|
rm 'file'
|
|
rm '-rf', 'file'
|
|
|
|
mv 'src', 'dest'
|
|
mv ['src1','src2'], 'dest'
|
|
|
|
chmod '644', 'file'
|
|
chmod 755, 'file'
|
|
chmod 'u+x', 'file'
|
|
|
|
### Tests
|
|
|
|
test '-b', 'path' # block device
|
|
test '-d', 'path' # dir
|
|
test '-e', 'path' # exists
|
|
test '-f', 'path' # file
|
|
test '-L', 'path' # symlink
|
|
|
|
### Cat and output
|
|
|
|
src = cat('file*.txt')
|
|
|
|
"hello".to('output.txt');
|
|
"hello".toEnd('append.txt');
|
|
|
|
cat('input.txt').to('output.txt');
|
|
|
|
### Utils
|
|
|
|
which('x')
|
|
pwd()
|
|
|
|
echo 'hi'
|
|
|
|
exec('node --version').code
|
|
exec('node --version').output
|
|
exec('node --version', {silent:true}).output
|
|
|
|
exec 'node --version', (code, output) ->
|
|
echo "exit code #{code}"
|
|
|
|
tempdir()
|
|
|
|
error() # null if no error
|
|
|
|
### Make
|
|
|
|
require 'shelljs/make'
|
|
|
|
target.all = ->
|
|
target.bundle()
|
|
target.docs()
|
|
|
|
target.bundle = ->
|
|
cd __dirname
|
|
mkdir 'build'
|
|
cd 'lib'
|
|
(cat '*.js').to '../build/output.js'
|
|
|
|
target.docs = ->
|
|
cd __dirname
|
|
mkdir 'docs'
|
|
cd 'lib'
|
|
for file in ls '*.js'
|
|
text = grep '//@', file # extract special comments
|
|
text.replace '//@', '' # remove comment tags
|
|
text.to 'docs/my_docs.md'
|
|
|
|
### References
|
|
|
|
* https://github.com/arturadib/shelljs
|