| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # $1	- version string | 
					
						
							|  |  |  | # options: | 
					
						
							| 
									
										
										
										
											2013-05-12 11:51:56 +02:00
										 |  |  | #	-c	colored grep (implies -d) | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | #	-d	debug | 
					
						
							|  |  |  | #	-r	release (exit status error; when called from Makefile) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-12 11:51:56 +02:00
										 |  |  | # To validate relevant files are up to date, you would run the script | 
					
						
							|  |  |  | # from command line before tagging: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #	$ scripts/check-version -cr <tag> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | set -eu | 
					
						
							|  |  |  | #set -x | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-12 11:51:56 +02:00
										 |  |  | # You would typically add/remove files to/from the list | 
					
						
							| 
									
										
										
										
											2014-12-17 12:45:45 -08:00
										 |  |  | files="Documentation/user-manual.txt Makefile README ReleaseNotes/ReleaseNotes.txt" | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | whine() { | 
					
						
							|  |  |  | 	echo "$0: $*" >&2 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | croak() { | 
					
						
							|  |  |  | 	whine "$*" | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | color=n | 
					
						
							|  |  |  | debug=n | 
					
						
							|  |  |  | release=n | 
					
						
							|  |  |  | while getopts cdr opt; do | 
					
						
							|  |  |  | 	case $opt in | 
					
						
							|  |  |  | 		c) | 
					
						
							|  |  |  | 			color=y | 
					
						
							| 
									
										
										
										
											2013-05-12 11:49:21 +02:00
										 |  |  | 			debug=y | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | 			;; | 
					
						
							|  |  |  | 		d) | 
					
						
							|  |  |  | 			debug=y | 
					
						
							|  |  |  | 			;; | 
					
						
							|  |  |  | 		r) | 
					
						
							|  |  |  | 			release=y | 
					
						
							|  |  |  | 			;; | 
					
						
							|  |  |  | 		*) | 
					
						
							|  |  |  | 			croak "invalid option" | 
					
						
							|  |  |  | 			;; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | shift $(($OPTIND - 1)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ $debug = y ]; then | 
					
						
							|  |  |  | 	opts=-n | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	opts=-q | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2013-05-12 11:47:47 +02:00
										 |  |  | [ $color = n ] || opts="${opts:+$opts }--color" | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | v=${1:-} | 
					
						
							| 
									
										
										
										
											2013-05-12 11:51:56 +02:00
										 |  |  | v=${v#v} | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | case $v in | 
					
						
							|  |  |  | 	*-*) | 
					
						
							|  |  |  | 		# Ignore development versions | 
					
						
							|  |  |  | 		if [ $release = y ]; then | 
					
						
							|  |  |  | 			croak "'$v' not a release tag" | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 			exit 0 | 
					
						
							|  |  |  | 		fi | 
					
						
							|  |  |  | 		;; | 
					
						
							|  |  |  | 	''|*[!.0-9]*) | 
					
						
							|  |  |  | 		croak "invalid version string '$v'" | 
					
						
							|  |  |  | 		;; | 
					
						
							|  |  |  | esac | 
					
						
							| 
									
										
										
										
											2013-05-12 11:51:56 +02:00
										 |  |  | whine "checking for version $v" | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-12 11:50:00 +02:00
										 |  |  | saveIFS=$IFS | 
					
						
							|  |  |  | IFS=. | 
					
						
							|  |  |  | set -- $v | 
					
						
							|  |  |  | IFS=$saveIFS | 
					
						
							|  |  |  | v= | 
					
						
							|  |  |  | while [ $# -gt 0 ]; do | 
					
						
							|  |  |  | 	v=${v:+$v\\.}$1 | 
					
						
							|  |  |  | 	shift | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | sts=0 | 
					
						
							|  |  |  | for f in $files; do | 
					
						
							| 
									
										
										
										
											2013-05-12 11:51:14 +02:00
										 |  |  | 	grep	-EH $opts \ | 
					
						
							|  |  |  | 		-e "(VERSION=|[Ss]ubsurface[[:blank:]]+)?\<v?$v[.0-9]*\>" \ | 
					
						
							|  |  |  | 		$f || { | 
					
						
							| 
									
										
										
										
											2013-05-12 11:48:35 +02:00
										 |  |  | 		[ $release != y ] || sts=1 | 
					
						
							|  |  |  | 		whine "'$f' may need updating" | 
					
						
							| 
									
										
										
										
											2013-05-09 00:55:44 +02:00
										 |  |  | 	} | 
					
						
							|  |  |  | done | 
					
						
							| 
									
										
										
										
											2013-05-12 11:48:35 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit $sts |