🛠️

Markdown形式の入力からtreeを出力するCLI

1 min read

どんなCLIなの?

以下に、実際に実行した結果を紹介します。

12:24:56 > gtree -ts << EOS
- root
  - parent_a
  - parent_b
    - child_a
      - 1
      - 2
        - a
          - 1
    - child_b
      - 1
        - a
  - parent_c
    - child_a
  - parent_d
EOS
root
├── parent_a
├── parent_b
│   ├── child_a
│   │   ├── 1
│   │   └── 2
│   │       └── a
│   │           └── 1
│   └── child_b
│       └── 1
│           └── a
├── parent_c
│   └── child_a
└── parent_d

このように出力されます。
インデントで階層を表わし、入力となるインデントが半角スペース2つ分の場合、-ts(two spaseの略)を付けます。デフォルトはタブです。
Markdownファイルを指定して実行することも可能です。
詳しい説明は、こちらのREADMEを参照してください。
また、Go製です。

どんなときに使えるの?

  • 存在しないディレクトリ構成をパッとtreeコマンド結果のように出力したい。
    • 手作業で枝を組み立てるのは面倒だなあ、楽に作りたい。
  • ツリー構造で表せる物事をtreeコマンド結果のように出力したい。

といったときに使えるかと思います。

どうやってインストールするの?

Goが入っている方は、以下を実行してください。

go get github.com/ddddddO/gtree/v6/cmd/gtree

Goが入っていない方は、こちらのリンク先からインストールをお願いします。

追記

  • 2021/07/22 複数ルートに対応しました🎉
13:21:20 > gtree -ts << EOS
> - a
>   - i
>     - u
>       - k
>       - kk
>     - t
>   - e
>     - o
>   - g
> - a
>   - i
>     - u
>       - k
>       - kk
>     - t
>   - e
>     - o
>   - g
> EOS
a
├── i
│   ├── u
│   │   ├── k
│   │   └── kk
│   └── t
├── e
│   └── o
└── g
a
├── i
│   ├── u
│   │   ├── k
│   │   └── kk
│   └── t
├── e
│   └── o
└── g
  • 2021/07/23 コマンド名をgentree -> gtreeへ変更しました🎉
  • 2021/07/31 プログラム上の操作でツリーを生成できるpackageを公開しました🎉
    • 個人的には記事で紹介しているCLIより面白い物だと思ってます。詳しくはこちらを参照してください。
    • zennで記事を書きました。

Discussion

ログインするとコメントできます