zx
Less than 1 minute
zx
JavaScriptでシェルっぽく雑用するためのライブラリ。 OilShellのアップデートで学び直さないといけない事が結構あってうんざりしてきたので、zxへの乗り換えを検討してみる。
文字列とprocess output
ちょっと引っかかりやすいのが、プロセスの結果は文字列では無くProcessOutputというオブジェクトで来るが、 ドル記号で文字列に展開しているので普段は気にしなくていい、という所。
const path = await $`pwd`
console.log(path.length) // undeifined
console.log(path.toString().length)
ちなみにlinesで行配列としてとれる。
tempfileと削除
const temp_cont = tmpfile()
await fs.rm(temp_cont)
しばらく作業した雑感、結構いいね
てきすとTLからTeFWikiにいろいろGUIを挟んでpublishするよなスクリプトを書いてみたが、なかなか良い。
まずnodeなので学習曲線が急で良い。
そしてそんなのnode素で書けばいいのでは?というのは、意外とそうでもない。 やはりプロセスとpipe周りが整備されているのは快適で良い。 だいぶシェルスクリプトっぽい感覚で外部コマンドを呼べる。mkdirのpオプションとか普通に使えるので良い。
そして追加で学習しないといけない事が少ないので、OilShellよりもメンテナンス容易さも期待出来る。 nodeはそんなに大きくは変わらないので、スクリプトの大部分はそのまま使える事が期待出来る。
nodeはfs周りがかったるさがあるので、それがシェルコマンドで補えるのは結構いいね。
今後はちょっと凝ったシェルスクリプト的なものはこれでいこう、という気分になった。