ファイル構成をYAMLでコード化する

SIOS Coati開発チームの清水です。

突然ですが、みなさんはファイル構成のコード化をどのようにおこなっていますか?

SIOS Coatiでは、環境の構築をAnsibleで行っています。Ansibleは非常に便利(どのくらい便利かは別の記事に譲ります)ですが、ちょっとしたひな形としてディレクトリやファイルを作るのには、少し大袈裟になりがちです。

たとえば個人的に、Pythonで開発をはじめるときは下のような構成が欲しかったりします。

このようにYAMLだとディレクトリの関係が綺麗に表現できます。

ならばいっそ、このYAMLからディレクトリ・ファイルをファイル構成を自動展開するスクリプトがあったらいいなと思ったので、作成しました。

普段からよく使う構成をYAMLにしておけば、ディレクトリ構成をドキュメント化しておく必要もありませんし、チーム内でひな形をお手軽に共有することもできます。

 

スクリプトと使い方を本記事の末尾に記載しますので、興味があるかたはぜひお試しください(スクリプトのご利用はあくまで自己責任でお願いいたします)。

なお実行にはPython3とPyYAMLライブラリが必要となるため、あらかじめインストールしてください。


ソースコード

template.py を作成し、以下のコードをコピー&ペーストしてください。

コマンドのフォーマット

サンプルコマンド

config.ymlの構成に基づいて、新しいファイル・ディレクトリを ./out ディレクトリ上に展開します。

なお、-o オプションを省略した場合は、カレントディレクトリ上に展開します。

もし、既にファイルが存在している場合は、その時点でプログラムは停止します(既存のファイルを変更することはありません)。

作成前にファイルの存在確認をする(Dry Run)場合は -d オプションを付与してください。


シンプルなコマンドですが、使いどころはあると思います。ぜひ使ってみてください!

SNSでもご購読できます。