pipeinit
#Python#Click#CLI
https://github.com/nokgc333/pipeinitCG/ゲームパイプライン向けの、プロジェクトフォルダ自動生成・命名規則バリデーション・バージョン採番CLIツール。実務ワークフローの一番最初、プロジェクト立ち上げ時に使う位置づけのツールとして制作した。
背景
プロジェクト立ち上げ時のフォルダ構成バラつきと、SHOT010_lighting_v003.hip のような命名規則違反・バージョン番号の重複や飛びは、現場で最初に問題化する「地味だが全員が困る」領域。手作業でフォルダ階層を1つずつ作成し命名規則を目視確認すると数分かかる作業を、pipeinit init は実測0.06秒(5フォルダ生成、Python起動込み)で完了する。
主な機能
pipeinit init --type game|film|generic:プロジェクト種別に応じたフォルダツリーを生成pipeinit validate:命名規則違反を検出(exit code 0/1、JSON出力対応)pipeinit bump:バージョン番号のインクリメント(既定はドライラン、--applyで実際にリネーム)
各種別のルールはrules/配下のYAMLで定義し、スタジオごとに規則を差し替える場合もコード変更は不要。
技術スタック
- Python 3.11+ / Click(CLIフレームワーク)
- PyYAML(
yaml.safe_loadのみ使用し、任意コード実行を防止) - pytest / mypy(strict) / black / isort / flake8 / pip-audit
設計判断
- 正規表現+YAML方式を採用し、専用パーサーは自作していない(命名規則は構文木を要しない文字列パターンの集合のため)
bumpは既定でドライラン、--applyで明示的にオプトイン(ファイルシステムを変更する操作は誤操作時の被害が大きいため、fail-safeな既定動作を優先)