jayin
Let's say you have a gitignore-like file:
# https://github.com/fritx/dotfiles# .gitignore*!.gitignore!README.md!prs-welcome.svg!.bashrc!.bash_profile!.exports!.aliases!.editorconfig
You want to cp the listed files to another folder.
Do it in bash?
files=$(cat .gitignore | sed /^\*$/d | sed s/\!//) # or even cat file | sed /^\*$/d | sed s/\!// \ | # thanks to @congeec, http://v2ex.com/t/278831#reply3 sed /^\*$/d .gitignore | sed s/\!// | xargs -I{} cp {} ./dotfiles/
WTF?
As a node.js developer, what if using just js flow/style?
cat .gitignore | js -ti 'x.trim().split(`\n`).slice(1).map(x => x.slice(1))' \ | js -e 'exec(`cp ${x} ./dotfiles/`)' # same as cat .gitignore | js -ti 'x.trim().split(`\n`)' \ | js 'x.slice(1)' \ | js 'x.map(x => x.slice(1))' \ | js -e -c 'cp ${x} ./dotfiles/'
# lodash is also integrated in # https://github.com/lodash/lodash echo '[1,2,3,4]' | js '_.filter(x, x => x %2)' \ | js '_.reverse(x)' \ >> file # or in chain echo '[1,2,3,4]' \ | js '_(x).filter(x => x %2).reverse().value()' \ >> file
Don't forget to take an alias if you want.
npm install -g jayinalias js="jayin"
-ti
: input as text, no more JSON.parse-to
: output as text, no more JSON.stringify-t
: input/output both as text-e
: for each, in chain-c
: shortcut of exec(cmd)x
: current input valuei
: current index value (with -e)exec(cmd)
: child_process.execSync(cmd)
jayin is based on through2.
If you've seen anything that is similar to this, don't hesitate to let me know ;)