ディレクトリ構成が決まっていて, 編集したいファイルのみを取ってきて作業したいときに利用できるようなツール.
# $GOBIN 以下にインストールされる
$ go get -u github.com/cwd-k2/roshi/cmd/roshi# ファイルを引っ張ってくる元のディレクトリを指定する
# .roshi ディレクトリと空の .roshi.json が生成される
# TODO: 元のディレクトリはカレントディレクトリのサブディレクトリになっていてはいけない
$ roshi init /path/to/origin
# .roshi.json を良い感じに編集する
$ vim .roshi.json
# .roshi.json に基いて元のディレクトリからファイルをコピーしてくる
$ roshi pull
# .roshi.json に基いて元のディレクトリにファイルを置きにいく
$ roshi push元ディレクトリのパターン: こちらのディレクトリのパターン という形式で書く.
{
"contents/#1-#2/main.cpp": "cpp/#2-#1.cpp"
}dir/#1-#2/#3.cppのような書き方#1などは/,.以外の一文字以上の連続にマッチする (最短一致)- 仮に「ナンバリング」と呼ぶ (良い呼称を募集中)
いくつか制限を設けている (開発を楽にするため).
- 正規表現や
..のようなものは認めない - ひとつのパターンにナンバリングの重複を認めない
- 複数のパターンについて, ナンバリングを空文字に置き換えたときに同一となるパターンが含まれる場合を認めない
- ナンバリングは連続することができない.
roshi が扱おうとするファイルの中で, 無視したいパターンを各行に書く.
これらは正規表現として扱われ, マッチするものを無視しようとする.
node_modules
\.git
なお, 空行及び # から始まる行は無視される.