ddddddO/gtree

verify 機能の追加

ddddddO opened this issue · 4 comments

gtreeと同様に、framedコマンドはyamlに基づいてディレクトリ生成できる。
このframedには、既存ディレクトリがyamlの記述に基づいているかチェックする機能があるよう。
https://github.com/mactat/framed#3-test-project-structure-cicd

Markdownとコマンドラインフラグとで既存ディレクトリが意図通りか検査する機能を追加したい

  • Markdownに記載されてるディレクトリ構造が正
    1. この構造が全て、ディレクトリに存在すればverifiedとする(Markdownに記載無いディレクトリがあってもok)
      • Markdownに有るパスがディレクトリに無い時のパスはすべて標準エラー出力に出力
    2. この構造と完全一致したディレクトリであればverifiedとする(Markdownに記載無いディレクトリがあればng)
      • strict モードとして扱う
      • Markdownに無いパスがディレクトリに有る時のパスはすべて標準エラー出力に出力
      • Markdownに有るパスがディレクトリに無い時のパスはすべて標準エラー出力に出力
  • growerはそのまま使える
  • verifierなinterface用意して実装
    • 全nodeで、hasChild == false なnodeをmapのキーにすればいい
    • baseのパスどうする?
      • Markdown内に/あると面倒だから、enableValidationを有効にしておく
      • 一旦、カレントディレクトリ + node.path とする。あとで、フラグとOptionでbaseパスを指定できるようにする
      • ディレクトリツリーは、https://github.com/ddddddO/work/blob/master/go/cmd/fs/main.go で取得
  • 公開関数としてVerify func・VerifyProgrammablyを定義
  • -e フラグ, WithFileExtentions は必要?
    • いらない気がする。実装手間だしuxも悪い

https://github.com/mactat/framed#2-capturing-current-project-structure

こういう機能もあると便利なのかな

この実装のunit testが未対応

unit test の充実はあとで