view 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
line wrap: on
line source

#!/bin/sh

OS=`uname -s`
case "$OS" in
     CYGWIN*|Linux)
	last_cvs_update=`date -r CVS/Entries +%y%m%d-%H:%M 2>/dev/null`
	;;
     BSD/OS)
	LS=`ls -lT CVS/Entries`
	month=`echo $LS | awk -F" " '{print $6}'`
	day=`echo $LS | awk -F" " '{print $7}'`
	hms=`echo $LS | awk -F" " '{print $8}'`
	hour=`echo $hms | awk -F":" '{print $1}'`
	minute=`echo $hms | awk -F":" '{print $2}'`
	year=`echo $LS | awk -F" " '{print $9}'`
	last_cvs_update="${year}${month}${day}-${hour}:${minute}"
	;;
     Darwin|*BSD) 
	# BSD 'date -r' does not print modification time
	# LANG=C sets month/day order and English language in the date string
	LS=`LANG=C ls -lT CVS/Entries`
	year=`echo $LS | cut -d' ' -f9 | cut -c 3-4`
	month=`echo $LS | awk -F" " '{printf "%.2d", \
		(index("JanFebMarAprMayJunJulAugSepOctNovDec",$6)+2)/3}'`
	day=`echo $LS | cut -d' ' -f7`
	hour=`echo $LS | cut -d' ' -f8 | cut -d: -f1`
	minute=`echo $LS | cut -d' ' -f8 | cut -d: -f2`
	last_cvs_update="${year}${month}${day}-${hour}:${minute}"
	;;
     *)
	last_cvs_update=`date +%y%m%d-%H:%M`
	;;
esac

extra=""
if test "$1" ; then
 extra="-$1"
fi
echo "#define VERSION \"dev-CVS-${last_cvs_update}${extra}\"" >version.h