我想知道是否有任何節點框架或節點lib可用於編寫shell腳本?例如,我有bash shell程序來安裝Graphite和OpenTSDB RRD工具,我想爲它使用node.js,這有可能嗎?使用Node.js的Shell腳本
感謝
我想知道是否有任何節點框架或節點lib可用於編寫shell腳本?例如,我有bash shell程序來安裝Graphite和OpenTSDB RRD工具,我想爲它使用node.js,這有可能嗎?使用Node.js的Shell腳本
感謝
看看shelljs - 它implemets外殼和GNU的coreutils樣功能。 加上咖啡的腳本,它可以看起來非常類似於一個shell腳本:
if not which 'git'
echo 'Sorry, this script requires git'
exit 1
# Copy files to release dir
mkdir '-p', 'out/Release'
cp '-R', 'stuff/*', 'out/Release'
# Replace macros in each .js file
cd 'lib'
for file in ls '*.js'
sed '-i', 'BUILD_VERSION', 'v0.1.2', file
sed '-i', /.*REMOVE_THIS_LINE.*\n/, '', file
sed '-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat 'macro.js', file
cd '..'
# Run external tool synchronously
if (exec 'git commit -am "Auto-commit"').code != 0
echo 'Error: Git commit failed'
exit 1
有很多種,其中最流行的有commander
npm install --save commander
然後寫命令是很容易的:
#!/usr/bin/env node
var program = require('commander');
program
.version('0.0.1')
.option('-f, --foo', 'enable some foo')
.option('-b, --bar', 'enable some bar')
.option('-B, --baz', 'enable some baz');
program.on('--foo', function(){
console.log('Stuff!');
});
這不是我所期待的。我正在尋找一個可以幫助我編寫shell腳本的節點框架。例如:我有這個腳本寫在bash https://github.com/gdbtek/setup-graphite/blob/master/ubuntu.bash,我想在節點中做到這一點。如果使用Node.js太多了,我認爲留在bash腳本中會更好。 –
你應該看看grunt這是一個工具包幫助人們在node.js中編寫構建和其他腳本。有很多插件可以幫助您輕鬆做出有趣的事情。
這就是說,如果你知道Bash,我會堅持bash。
看看這個interesting thread on Twitter about Bash vs. Grunt scripting
我用咕嚕對於
我使用Capistrano的*
對於
我運用Bash **
爲
*
capistrano +混帳或chef或任何**
bash或任何其他工具,你想使用你能解釋一下爲什麼你會堅持bash,如果我已經知道Bash?使用bash over grunt有什麼好處? –
1.在服務器上執行二進制程序在異步JavaScript中顯着困難,因爲它在bash中。 2. Grunt/node.js仍然是1.0之前的版本,並且具有不斷變化的API(比節點更加糟糕)3. Bash是許多系統上可用的通用工具,而node.js和grunt不可能安裝在許多系統上。 –
Docker https://www.docker.com/雖然削減了所有這一切。 (**和*) – Quickredfox
謝謝@Andrey Sidorov,看起來很有希望,我會試試這個lib。 –