annotate version.sh @ 15536:b39eee207c42

LANG=C ensures month/day order and English language in the date string for more reliable operation in diverse environments. Tested on OpenBSD, NetBSD, FreeBSD, Darwin 10.2 and Darwin 10.1. Darwin 10.4 should work as well, 10.3 does not due to broken ls.
author diego
date Sat, 21 May 2005 14:44:10 +0000
parents 3f20ae0bd86e
children c4e5c20f2dd6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
420
980bafac238f write cvs date+version into version.h
arpi_esp
parents:
diff changeset
1 #!/bin/sh
980bafac238f write cvs date+version into version.h
arpi_esp
parents:
diff changeset
2
8687
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
3 OS=`uname -s`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
4 case "$OS" in
15513
3f20ae0bd86e simplification
diego
parents: 15511
diff changeset
5 CYGWIN*|Linux)
8687
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
6 last_cvs_update=`date -r CVS/Entries +%y%m%d-%H:%M 2>/dev/null`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
7 ;;
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
8 BSD/OS)
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
9 LS=`ls -lT CVS/Entries`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
10 month=`echo $LS | awk -F" " '{print $6}'`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
11 day=`echo $LS | awk -F" " '{print $7}'`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
12 hms=`echo $LS | awk -F" " '{print $8}'`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
13 hour=`echo $hms | awk -F":" '{print $1}'`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
14 minute=`echo $hms | awk -F":" '{print $2}'`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
15 year=`echo $LS | awk -F" " '{print $9}'`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
16 last_cvs_update="${year}${month}${day}-${hour}:${minute}"
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
17 ;;
15536
b39eee207c42 LANG=C ensures month/day order and English language in the date string for
diego
parents: 15513
diff changeset
18 Darwin|*BSD)
b39eee207c42 LANG=C ensures month/day order and English language in the date string for
diego
parents: 15513
diff changeset
19 # BSD 'date -r' does not print modification time
b39eee207c42 LANG=C ensures month/day order and English language in the date string for
diego
parents: 15513
diff changeset
20 # LANG=C sets month/day order and English language in the date string
b39eee207c42 LANG=C ensures month/day order and English language in the date string for
diego
parents: 15513
diff changeset
21 LS=`LANG=C ls -lT CVS/Entries`
15511
7a2d85a8da98 Make version string depend of the last change of CVS/Entries for Darwin.
diego
parents: 11509
diff changeset
22 year=`echo $LS | cut -d' ' -f9 | cut -c 3-4`
7a2d85a8da98 Make version string depend of the last change of CVS/Entries for Darwin.
diego
parents: 11509
diff changeset
23 month=`echo $LS | awk -F" " '{printf "%.2d", \
15536
b39eee207c42 LANG=C ensures month/day order and English language in the date string for
diego
parents: 15513
diff changeset
24 (index("JanFebMarAprMayJunJulAugSepOctNovDec",$6)+2)/3}'`
b39eee207c42 LANG=C ensures month/day order and English language in the date string for
diego
parents: 15513
diff changeset
25 day=`echo $LS | cut -d' ' -f7`
15511
7a2d85a8da98 Make version string depend of the last change of CVS/Entries for Darwin.
diego
parents: 11509
diff changeset
26 hour=`echo $LS | cut -d' ' -f8 | cut -d: -f1`
7a2d85a8da98 Make version string depend of the last change of CVS/Entries for Darwin.
diego
parents: 11509
diff changeset
27 minute=`echo $LS | cut -d' ' -f8 | cut -d: -f2`
7a2d85a8da98 Make version string depend of the last change of CVS/Entries for Darwin.
diego
parents: 11509
diff changeset
28 last_cvs_update="${year}${month}${day}-${hour}:${minute}"
8687
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
29 ;;
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
30 *)
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
31 last_cvs_update=`date +%y%m%d-%H:%M`
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
32 ;;
93694559178c better BSD/OS support by Steven Schultz <sms@2bsd.com>
alex
parents: 7448
diff changeset
33 esac
3292
7fa3a928631a not it looks like this 'MPlayer CVS-011203-19:47-gcc-2.95.3'
jaf
parents: 1621
diff changeset
34
7447
a49219323787 moved to to avoid CVS-XXYYZZ- versions (if no given) - altought this comment is bigger than the patch :)
alex
parents: 5949
diff changeset
35 extra=""
7448
b464616d40b5 Should be: if test ; then - D Richard Felker III <dalias@aerifal.cx>
alex
parents: 7447
diff changeset
36 if test "$1" ; then
7447
a49219323787 moved to to avoid CVS-XXYYZZ- versions (if no given) - altought this comment is bigger than the patch :)
alex
parents: 5949
diff changeset
37 extra="-$1"
a49219323787 moved to to avoid CVS-XXYYZZ- versions (if no given) - altought this comment is bigger than the patch :)
alex
parents: 5949
diff changeset
38 fi
10421
b522f0f85387 the trailing space isn't needed anymore
alex
parents: 9374
diff changeset
39 echo "#define VERSION \"dev-CVS-${last_cvs_update}${extra}\"" >version.h