経緯
.gitignore は自動生成してる にも書いたとおり gibo を使っている。
gibo では大文字・小文字のどちらでも参照することはできる。
でも自分自身で書く範疇では大文字・小文字をきちんと区別して表記したくなった。
手軽に gibo で定めている正式名称を得る方法が欲しい。
スクリプト
そこで「標準入力で受け取った言語名・フレームワーク名を正しい表記にして返す」スクリプトをさっと書いてみた。
その名も giboexact
giboexact
#!/usr/bin/env bash
set -uo pipefail
set noclobber
umask 0777
export PATH='/bin:/usr/bin'
export LANG='C'
gibodir="$HOME/.gitignore-boilerplates"
while IFS='' read word
do
ls -1 "$gibodir" "$gibodir"/Global \
| sed -e 's/.gitignore$//' \
| grep -i "^$word$"
done
egrep|grep, GNU|BSD のオプションの違いに苦戦するのが嫌だったので、すこし冗長だが sed を経由している。
また、 Bash を前提にしているが、 Bash 固有の文字列置換は使わないようにした。
使い方
標準入力に入力したものが標準出力で正規化されて出てくる。
以下の例では何もリダイレクトしていないので、 1 行ずつ交互に入力・出力を繰り返す。 (cat 等と同じような挙動 )
$ chmod +x giboexact
$ ./giboexact
python
Python
wordpress
WordPress
linux
Linux
$ # (注 ^D で終了している)
他
書式にこだわるなら、さらにこの結果を | sort -n | uniq とパイプしてアルファベット順・重複なしを保証しよう。