💼

作業環境を移行する技術

に公開

日記

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