バージョンのインクリメント
30分プログラム、その161。0.1.0のようなバージョン番号のインクリメント。
バージョン番号を直接ソースコードに埋めこまず、外部のファイルで管理するようにしている。
2.0.1
で、この外部ファイルに書かれたバージョン番号をインクリメントするスクリプトを書いてみた。
使い方
$ cat v.txt 1.2.3 # リビジョンだけ上げる $ perl version.pl v.txt rev ; cat v.txt 1.2.4 # マイナーバージョンアップ # リビジョンもリセットされる $ perl version.pl v.txt; cat v.txt 1.3.0 # メジャーバージョンアップ # リビジョン、マイナーバージョンのリセット $ perl version.pl v.txt major; cat v.txt 2.0.0
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # version.pl - version up script # # Copyright(C) 2007 by mzp # Author: MIZUNO Hiroki <hiroki1124@gmail.com> # http://mzp.sakura.ne.jp/ # # Timestamp: 2007/10/21 22:45:22 # # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # use strict; use warnings; my $path = $ARGV[0]; my $type = $ARGV[1] || 'minor'; open(FILE,$path); my @version = split /\./,join("",<FILE>); #/ close(FILE); if($type eq 'major'){ $version[0]++; $version[1]= $version[2] = 0; }elsif($type eq 'minor'){ $version[1]++; $version[2]=0; }elsif($type eq 'rev'){ $version[2]++; }else{ die "unkown type: $type"; } open(FILE,'>',$path); print FILE join('.',@version),"\n"; close(FILE);