作業環境を移行する技術
日記
Lemur Pro が結構古くなってきて動作が全体的に不安定になってきたのと、最近現場で開発をする機会が相対的に増えてきたのでAdder WS に買い替えた。
以前より仕事環境のポータビリティにはこだわってきたのだが、今回それが効を奏して相当スムーズに移行ができたので、そのノウハウを共有したい。
dotfiles
tan-t/dotfiles に各種設定ファイルを配置している。
これ自体はhome-managerの設定ファイルとNeoVimの設定ファイルの組み合わせになっており、 home-managerをインストールしてswitchすればすぐに各種ツール群が同じ設定でインストールされてすぐ利用できる。
1password
1password にすべての認証情報を入れているのでスマートフォンアプリ経由で1passwordにログインするとあらゆるサービスにログインができるようになる。
workspace
普段の業務は ~/workspace 配下で行っている。
ここには、GitHubにプッシュしている情報もあれば、自分用のツールでどこにもプッシュしていないものもある。というのと、いかにGitHubに本体があったとしても一つ一つcloneしていくのはそれなりに骨が折れる。
ということで、workspace/配下かつ、gitignoreでignoreされていないディレクトリ・ファイルのみをtar.gzに固めてUSBメモリー(古)で移行することにした。
set -euo pipefail
SRC="/home/tan_t/workspace"
STAGE="$(mktemp -d)"
DST="$STAGE/workspace_clean"
rsync -a \
--prune-empty-dirs \
--filter=':- .gitignore' \
"$SRC"/ "$DST"/
tar -C "$STAGE" -czf workspace_gitignore_respected.tar.gz workspace_clean
echo "→ $(pwd)/workspace_gitignore_respected.tar.gz"
これで、node_modulesやdocker volume等の重くて別に運ばなくて良いディレクトリを除外して、必要な仕事用のディレクトリを移行できるようになった。
まとめ
home-managerはそこそこクセが強く、例えばnpm install -gなどで便利なCLIを入れたりがしづらいといったデメリットもあるはあるが、それを補って余りあるポータビリティが手に入るので手が離せないぜ!
Discussion