最近、Goでtreeコマンドを作ってみた。
自分はディレクトリとファイルのツリー構造をREADMEなど仕様上の資料に含めることが多いのですが、
その際に必要とするディレクトリとファイルをmkdir
、touch
してから、ツリー構造の先頭に行き
treeコマンドを実行して用意するのが手間だったので作りました。
https://github.com/fujimisakari/go-tree
使い方は、yamlでtree構造を定義するだけです。
go-tree
以降からyamlの配列で定義していき、ディレクトリには末尾にセミコロン付けます。
また、root-dir
でrootディレクトリ名を定義することができます(defaultでは.
になります)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| root-dir: "Sample" go-tree: - fizz - buzz - dir1: - comp1-1 - comp1-2 - comp1-3 - comp1-4 - dir2: - comp2-1 - comp2-2 - comp2-3 - comp2-4 - dir3: - comp3-1 - comp3-2 - dir4: - comp4-1 - comp4-2 - comp4-3 - comp3-3 - comp3-4 - comp2-5 - comp2-6 - dir5: - comp4-1 - comp4-2 - comp4-3 - comp4-4 - foo - bar
|
あとは、go-treeコマンドのパラメータにyamlファイルのpathに渡して実行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| $ go-tree ./sample.yaml Sample ├── fizz ├── buzz ├── dir1 │ ├── comp1-1 │ ├── comp1-2 │ ├── comp1-3 │ └── comp1-4 ├── dir2 │ ├── comp2-1 │ ├── comp2-2 │ ├── comp2-3 │ ├── comp2-4 │ ├── dir3 │ │ ├── comp3-1 │ │ ├── comp3-2 │ │ ├── dir4 │ │ │ ├── comp4-1 │ │ │ ├── comp4-2 │ │ │ └── comp4-3 │ │ ├── comp3-3 │ │ └── comp3-4 │ ├── comp2-5 │ └── comp2-6 ├── dir5 │ ├── comp4-1 │ ├── comp4-2 │ ├── comp4-3 │ └── comp4-4 ├── foo └── bar
|