kako-junです
好きなものは 高台から発見してのマルミサクイボコンボです
Gistを一括ダウンロードするバックアップツール gist-exporter
を作ってるんだけど
イイ感じに動いてきたところ
1つ
ゲゲッ
って詰まるところがあったよ
ダウンロードには
git clone
を使うけど
gist-exporterの実行ファイルの場所にcloneしてきたら汚いので
どこのディレクトリにcloneするかを 引数で指定できるよーにしたんよ
そしたら
git clone
する前に
gist-exporterのスクリプト内で カレントディレクトリを変更しとかなきゃいけないワケだけど
その方法が すぐに見つからんかったんよ
Rubyなら Dir.chdir
Goなら os.Chdir
なのに Node.jsだと
ググって見つかるのは カレントディレクトリの取得ばかり
やっと見つけて解決
process.chdir
ね
これでカレントディレクトリを変えると
path.resolve
の計算にも影響あるみたいで
ループで回すと どんどんパスが深くなってったの
path.resolve
の前に、毎回 process.chdir(__dirname)
すれば解決
このスコープの中でだけ カレントディレクトリを変えて
みたいな指定があればなー
無いみたいだったので
その用途に使える Go製のコマンドラインツールも作ったよ
そのツールを execSync
で呼び出すことで
擬似的に
execSync
のたびに別カレントディレクトリ
を実現できたにゃー
そのツールもpublic repositoryで公開するの
cdand って名付けた
Node.jsがマルチプラットフォーム
Goもマルチプラットフォームだから
呼べない環境が無いわけで
すごく馴染むわ
ウッチャンに対するナンチャン ってヤツ