X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/50011f1970c03de8b6f468133f91fdc9c00d2d6d..b014c96d685962e4d4eea887b211397ba17fbf3d:/tools/mkversion.pl diff --git a/tools/mkversion.pl b/tools/mkversion.pl index 3cd469d1..19616441 100644 --- a/tools/mkversion.pl +++ b/tools/mkversion.pl @@ -3,61 +3,30 @@ # Normally a couple of lines of bash would be enough (see openpcd project, original firmware by Harald Welte and Milosch Meriac) # but this will, at least in theory, also work on Windows with our current compile environment. # -- Henryk Plötz 2009-09-28 +# Modified april 2014 because of the move to github. +# --- Martin Holst Swende -my $main_dir = shift; -# Clear environment locale so that svn will not use localized strings +# Clear environment locale so that git will not use localized strings $ENV{'LC_ALL'} = "C"; $ENV{'LANG'} = "C"; -my $svnversion = 0; -my $present = 0; +my $gitversion = `git describe --dirty`; +my $gitbranch = `git rev-parse --abbrev-ref HEAD`; my $clean = 2; my @compiletime = gmtime(); -# Strategy one: call svn info and extract last changed revision, call svn status and look for ^M -if(open(SVNINFO, "svn info $main_dir|")) { - while() { - if (/^Last Changed Rev: (.*)/) { - $present = 1; - $svnversion = $1; - ## last; # Do not abort here, since SVN tends to complain about a Broken pipe - } - } - close(SVNINFO); +my $fullgitinfo = $gitbranch . '/' . $gitversion; - if(open(SVNSTATUS, "svn status $main_dir|")) { - $clean = 1; - while() { - if(/^M/) { - $clean = 0; - ## last; - } - } - close(SVNINFO); - } +$fullgitinfo =~ s/(\s)//g; -} else { - # Strategy two: look for .svn/entries. The third line should be "dir", the fourth line should contain - # the currently checked out revision, the eleventh line should contain the last changed revision. - # revision. - if(open(ENTRIES, "$main_dir/.svn/entries")) { - my $i = 1; - while() { - last if($i == 3 and !/^dir/); - if($i == 11 and /^([0-9]*)/) { - $present = 1; - $svnversion = $1; - } - $i++; - } - } -} +# Crop so it fits within 50 characters +$fullgitinfo =~ s/.{50}\K.*//s; $compiletime[4] += 1; $compiletime[5] += 1900; my $ctime = sprintf("%6\$04i-%5\$02i-%4\$02i %3\$02i:%2\$02i:%1\$02i", @compiletime); -$svnversion=~ s/(^\s+|\s+$)//g; + print <