見出し画像

Curlでjsを呼び出しておいてnodeで実行する。homebrewのbash活用も

結論

curl -s https://hatochang.dojin.com/test_console.js|node

最初作ったテストコードはこんな感じだが


https://hatochang.dojin.com/test_console.js

console.logしか使ってないので、curl経由でコマンドを流し込んでオプションとかスクリプト書けばなんとかなると思ったら普通に流せばただ動いた。

スクリーンショット 2020-09-30 8.29.19

Node.js リファレンス見るとv8から対応している。

v8.0.0
stdin のエイリアス。他のコマンドラインユーティリティでの - の使用に似ていて、 スクリプトが標準入力から読み込まれ、残りのオプションはそのスクリプトに渡される。
Alias for stdin. Analogous to the use of - in other command-line utilities, meaning that the script is read from stdin, and the rest of the options are passed to that script.

https://nodejs.org/api/cli.html#cli_options

変な文字が出ているがcurlにサイレントオプション(-s)というのがあるそうなのでそれで消せるらしい。ワンライナー

スクリーンショット 2020-09-30 8.39.01

GISTにあるソースも動く

 curl -s https://gist.githubusercontent.com/setapolo/a6ba7564db053116c9c2b4f5c12e83ee/raw/34e8f1284bfcffa7f82b88c138d03643b8b61159/test.js|node

引数はどうやって渡せるか?

Locationはブラウザを介さないので動かないからNodeのグローバルが動く、コード側でLocationかGlobalの有無でハイブリッドにすることはできる

ちょっと気になるあのbrewとかのインストールコマンド

bash -C で動くらしいがcurlだけだとソースがみれるはず

普通にSHELLだった。そんなにたいそうなマジックはないがコマンドオプションはきになる fsSL

コマンドエコノミー的にはjsでなんか書いてnodeでシェルにしてのbashだなこりゃ

動いた動いた



お願い致します