背景
パソコンを新調した時に大変なのが
です。
前者に関してはhomebrewが提供しているbrew bundle
である程度対応できます。
後者でghqはdump, restore的な機能ってあるのかな?と思って探したのがこの記事のきっかけです。
環境
- ghq v1.02
方法
ghqがlist
や(import
get
に統合されました)といった機能を提供しています。
dump
ghq list > .ghqlist
でcloneしたリポジトリの一覧が出せます。
※ファイル名は任意です
restore
先ほど作成したバックアップファイル.ghqlist
を
cat .ghqlist | ghq get
とすれば順にcloneしてくれます。
シェルスクリプトにする
シェルスクリプトにして簡単に実行できるようにしましょう。
加えてdotfilesとしてgithubでバージョン管理していれば、新しいMacにしてからもすぐに移行できるようになります。
ghq_dump.sh
#!/bin/bash ghq list | grep github.com | sort > .ghqlist
先ほどと違うのは
grep
を入れてるsort
している
点です。
grep
の方はgo get
で公式パッケージなど開発するもの以外が入ってしまうのを除外しています。
sort
の方はghq list
が特に順序を保証しないので、バージョン管理した際にリポジトリの位置が毎回コロコロ変わって大量の変更点が出てしまうからです。
ghq_import.sh
#!/bin/bash
cat .ghqlist | ghq get
こちらは先ほどと同じです。