bashのスクリプトを書いていれば、いつか環境を整える必要がでてくるかも知れない。
自分の場合ではまだ必要ではなさそうだったが、先に調べて試してみたところ、結果的に今では幾つか助かるツールがあることが分かった。
そこで、以下にインストール方法、使い方、参考情報などをまとめておくことにした。
ツール
shellspec (テスト)
- さっと動作確認できて安心
- 仕様を明確にしておける など
[how to install] こだわりがないなら、素直にInstallationに従う 個人的に試すだけなら、Manual InstallationのFrom gitに従うのも手 $ cd /SOME/WHERE/TO/INSTALL $ git clone https://github.com/shellspec/shellspec.git $ ln -s /SOME/WHERE/TO/INSTALL/shellspec/shellspec /EXECUTABLE/PATH/
[how to use] 日本語で見たければ、Qiitaの記事を検索して見る https://qiita.com/tags/shellspec READMEが見やすいので、あまり困らずに使えるかと思う https://github.com/shellspec/shellspec 基本的には、書いてあるとおりだが、 $ cd PROJECT-ROOT $ shellspec --init で、基本のファイル等々を作成し、 $ vi spec/xxx_spec.sh $ shellspec で、PROJECT-ROOT/spec/ の _spec を含むファイルを実行 なお、テストでのスクリプト参照などは、PROJECT-ROOTからのパスで指定する必要があるので注意 テストの内容も Describe "test group" It 'test case 1' When call *command* The status should eq 1 End End と、必要に応じてグループでまとめながらテストを書けば良い
[option] 必要に応じて.specfileにオプションを指定しておける 例えば、 --require spec_helper --shell bash --format d --kcov --kcov-path=./kcov など
kcov(カバレッジ)
- カバレッジが取れて安心
[how to install] INSTALLにビルド方法が示されているのでそれに従う 面倒であればconanを使う方法がある(v38のみ) https://github.com/SimonKagstrom/kcov/issues/321 conanを初めて使う場合は以下も参考にすると、導入が楽かもしれない https://qiita.com/kai_kou/items/bfe7262fb6e9e571b913 conan installで上手くいかない部分は、エラーの内容に応じてconanfile.txtをいじる どうしてもsettingsがいじりたければ、.conan/profilesで変更できる ※windows/mingw環境については、「もしかしたら使えるかもね……」という解答はあるが、詳細不明 できるなら、素直にwsl環境などを使った方が良さそう
[option] shellspecと一緒に用いる予定なので、.shellspecのファイルに--kcovの指定はしておく なお、カバレッジを取る対象はいろいろと制限があるらしいので、shellspec/READMEを確認 変なshファイルを置いていると、いつまで経ってもカバレッジが上がらないので注意する(敗北)
shfmt(フォーマッタ)
- 書いてるときはバラバラしがち
- 見た目を合わせて、可読性を高めたい
shell-check(静的解析)
- 初心者じゃ気づけないところがある
- 文法的ミスを早期になくしたい
shfmt, shell-checkのいずれも、以下の記事が基本的なことを説明してくれているので参照 https://note.com/navitime_tech/n/n0675e103bafa [how to install] 基本的には記事の通り、shfmtはgit経由、shell-checkはパッケージマネージャ経由でインストールすればよく、各自でのコンパイル等不要 なお、shell-checkに関してはpre-compiled binaryを取る形でも利用できる https://github.com/koalaman/shellcheck#installing-a-pre-compiled-binary [how to use] READMEに書いてあるとおりだが、コマンドの引数にスクリプトを取れば良い [option] 個人で試すだけなら、どちらもgit経由で持ってきて ln -s でリンクをはっておけば、簡単に使える
shellcheckをvimで使う
- もし、shellcheckをvimで利用したい場合は、プラグインを導入する
- 例えば、
- まず、syntasticを導入する
- 上記リンクの"Recommended settings"まで設定したら、shellcheckを導入
- 自動的に統合され、vimで保存時にチェックがかかるようになる
- 例えば、
- なお、shellcheckをVSCodeで使う場合は、アドオンを使えばよい
おまけ(git関連)
git関連で利用できそうなもの。
post-commit
- CI/CDの環境がないときでも、コミットごとに簡単なCI/CDもどきができそう
git init --bare --shared
- タイトル通りだが、「Githubを使わずにチームでGitを共有する」必要があれば使える
delta
- gitの差分を見やすく表示できる
- 幾らか古めの環境でも利用できるのがありがたい