Closed7

dotfiles用のCLIを作る。

ymgnymgn

このあたりのパッケージをざっと調べた。

UI

プロンプトUI

スピナーも容易されていたりして、これだけでリッチなCLIが作れる。
https://github.com/natemoo-re/clack

テキストカラーの背景色を変えたUIを実装することができる。
https://www.npmjs.com/package/chalk

プロセス実行

https://www.npmjs.com/package/commander

https://github.com/sindresorhus/execa

ファイル・ディレクトリ操作

https://www.npmjs.com/package/fs-extra

ymgnymgn

Bunのインストール

これだけ。

curl -fsSL https://bun.sh/install | bash -s "bun-v1.0.0"

アンインストールもこれだけ。楽すぎる。

rm -rf ~/.bun 
ymgnymgn

いい感じのUIでインストールが進むdotfiles CLIができた。

Welcome to ymgn's dotfiles!
✔ Enter password: ****
│
◇  Preparation for installation is complete.
✔ bat is already installed.
✔ eza is already installed.
✔ delta is already installed.
✔ fzf is already installed.
✔ nvim is already installed.
✔ code is already installed.
✔ tmux is already installed.
✔ lazygit is already installed.
✔ wezterm is already installed.
✔ docker is already installed.
✔ thorium is already installed.
✔ google-chrome is already installed.
✔ vlc is already installed.
✔ stow is already installed.
✔ rye is already installed.
✔ volta is already installed.
│
◇  Linking of dotfiles is complete.

ymgnymgn

TODO

  • テスト
  • エラーログ出力
  • Commanderを使ったオプション
ymgnymgn

https://github.com/ymgn-dev/dotfiles

一通りのdotfilesの実装が済んで使えるようになったが、お仕事を一緒にさせてもらっている方からパスワード読み取り部分でコマンド履歴にパスワードが残ってしまい漏洩のリスクがあるかも知れないとご指摘をいただいた。

改善案としては、予めsuperuserにて実行する前提の作りにしておき、スクリプト内ではパスワードなしでコマンド実行できるようにしておきたい。

少し調べたところ、簡単にはいかなそうで、sudo visudoを実行して(/etc/sudoersを書き換え)環境変数を引き継ぐ実装にしないといけないらしい。

↓参考
https://github.com/oven-sh/bun/issues/983
https://superuser.com/questions/453246/sudo-can-not-find-binary

このスクラップは2023/11/19にクローズされました