Skip to content

willowtown0576/bash-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

シェルスクリプト テンプレート

各ファイルの説明

scripts/main.sh

実行の大元となるシェルスクリプト。 ここのmain関数に主処理を記載する。 JP1とかのジョブに定義するスクリプトはこれ。 --production, --staging, --developで実行環境を指定できる。(各環境ごとに設定値が違う場合などを考慮)

lib/common.sh

共通の定数とか関数を定義するシェルスクリプト。 ここで定義する定数は、定数の前後にアンダーバーを付与してcommon.shで定義されているということが分かるようにしている。 ※自分の経験上、別ファイルで定義された変数を利用する際にどこで定義されたものなのか混乱することが多かったため。解析も大変。 また、common.shで定義された関数は、common::[関数名]とすることで、common.shで定義された関数だとわかるようにしている。 これも管理的に、どこで定義された関数なのかひと目でわかるようにするため。 今はログ出力用の関数とjqコマンドのラッパー関数しかないが、cpやmv、rm等の代表的なコマンドはエラー処理などを含めてcommon.shでラッパー関数として定義したほうがいいと思う。

conf/template.json

本番・検証・開発の各環境の設定値を定義するファイル。 多くの現場では変数で設定値を定義している場合が多いと思うが、管理の観点からJSONのほうが扱いやすいだろうと思いJSONファイルにしている。 production, staging, developの各プロパティの中にそれぞれ設定値を記載していくことで、main.shで指定した環境指定のオプション切り替えで値を変えることができるのが利点。 JSONファイルの読み取りにjqコマンドが必要なのがひと手間かかる。 JSONファイルの読み取りには、common.shで定義したjqコマンドのラッパー関数を使用すること。

About

Bashスクリプトによるプロジェクトのテンプレート

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages