前回,とりあえず作ってみたと書きましたが,その後.
現在,github の方においてあるものは,バージョンチェックのバージョン比較に文字列比較をしているので,2.9 と 2.10 を比較すると 2.9 の方が新しくなってしまうという問題があります.これをちょっと何とかしたいなと.
真剣に考えると意外に面倒かもな.
バージョン番号から小数点毎に文字列/数字を切り出して,それぞれの桁毎に数字/文字列比較をして大きいものを新しいとする.
openssl などのように,アルファベットでバージョン番号を記述しているツールもあるので,バージョン記述が数字なのか文字列なのかで比較する方法を変える必要がある.文字列の時は文字列比較して,数字の時には数字比較.でもバグフィックスなどで 2.1 の次に 2.1a とかもあり得るので,同じ桁が数字と文字列の組合せの場合には文字列比較する.
2.1 の次に 2.1.1 とかの場合は,途中まで文字列/数字比較で同じ値なら,けた数が多い方が新しいバージョンとする.
な感じの処理が必要かなと考え始めると bash スクリプトじゃなくてなんか普通のスクリプト言語使えばよかったかなぁと思いますね.
bash 上で文字列かどうかを判断するとか,考え始めると結構面倒だな.sed や expr,wget などのいろんな外部コマンドを駆使するなら,スクリプト言語の方ライブラリ使うだけだからまとまってるし,エラー処理も楽ですもんね.