svn commit: r348175 - head/sys/conf

Warner Losh imp at FreeBSD.org
Thu May 23 17:18:49 UTC 2019


Author: imp
Date: Thu May 23 17:18:48 2019
New Revision: 348175
URL: https://svnweb.freebsd.org/changeset/base/348175

Log:
  Implement "VARS_ONLY=1" via special command line args
  
  Add -v to print TYPE REVISION BRANCH RELEASE VERSION RELDATE variables
  Add -V var to print var's value
  	Both of these in ${var}="${val}" format suitable for
  		eval $(sh newvers.sh -v)
  	in shell scripts / makefiles.
  Add -c to print the copyright / license comment text only.
  
  Document these, and remove soon-to-be obsolete comment.
  
  Minor code motion as well bunded here to put functions after
  VARS_ONLY and command line argument parsing.
  
  Differential Revision: https://reviews.freebsd.org/D19849

Modified:
  head/sys/conf/newvers.sh

Modified: head/sys/conf/newvers.sh
==============================================================================
--- head/sys/conf/newvers.sh	Thu May 23 16:05:47 2019	(r348174)
+++ head/sys/conf/newvers.sh	Thu May 23 17:18:48 2019	(r348175)
@@ -34,25 +34,105 @@
 
 # Command line options:
 #
-#     -r               Reproducible build.  Do not embed directory names, user
-#                      names, time stamps or other dynamic information into
-#                      the output file.  This is intended to allow two builds
-#                      done at different times and even by different people on
-#                      different hosts to produce identical output.
+#	-c	Print the copyright / license statement as a C comment and exit
 #
-#     -R               Reproducible build if the tree represents an unmodified
-#                      checkout from a version control system.  Metadata is
-#                      included if the tree is modified.
+#	-r	Reproducible build.  Do not embed directory names, user	names,
+#		time stamps or other dynamic information into the output file.
+#		This is intended to allow two builds done at different times
+#		and even by different people on different hosts to produce
+#		identical output.
+#
+#	-R	Reproducible build if the tree represents an unmodified
+#		checkout from a version control system.  Metadata is included
+#		if the tree is modified.
+#
+#	-V var	Print ${var}="${val-of-var}" and exit
+#
+#	-v	Print TYPE REVISION BRANCH RELEASE VERSION RELDATE variabkes
+#		like the -V command
+#
 
-# Note: usr.sbin/amd/include/newvers.sh assumes all variable assignments of
-# upper case variables starting in column 1 are on one line w/o continuation.
-
 TYPE="FreeBSD"
 REVISION="13.0"
 BRANCH=${BRANCH_OVERRIDE:-CURRENT}
 RELEASE="${REVISION}-${BRANCH}"
 VERSION="${TYPE} ${RELEASE}"
 
+if [ -z "${SYSDIR}" ]; then
+    SYSDIR=$(dirname $0)/..
+fi
+
+RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' ${PARAMFILE:-${SYSDIR}/sys/param.h})
+
+if [ -r "${SYSDIR}/../COPYRIGHT" ]; then
+	year=$(sed -Ee '/^Copyright .* The FreeBSD Project/!d;s/^.*1992-([0-9]*) .*$/\1/g' ${SYSDIR}/../COPYRIGHT)
+else
+	year=$(date +%Y)
+fi
+# look for copyright template
+b=share/examples/etc/bsd-style-copyright
+for bsd_copyright in $b ../$b ../../$b ../../../$b /usr/src/$b /usr/$b
+do
+	if [ -r "$bsd_copyright" ]; then
+		COPYRIGHT=$(sed \
+		    -e "s/\[year\]/1992-$year/" \
+		    -e 's/\[your name here\]\.* /The FreeBSD Project./' \
+		    -e 's/\[your name\]\.*/The FreeBSD Project./' \
+		    -e '/\[id for your version control system, if any\]/d' \
+		    $bsd_copyright)
+		break
+	fi
+done
+
+# no copyright found, use a dummy
+if [ -z "$COPYRIGHT" ]; then
+	COPYRIGHT="/*-
+ * Copyright (c) 1992-$year The FreeBSD Project.
+ *
+ */"
+fi
+
+# add newline
+COPYRIGHT="$COPYRIGHT
+"
+
+include_metadata=true
+while getopts crRvV: opt; do
+	case "$opt" in
+	c)
+		echo "$COPYRIGHT"
+		exit 0
+		;;
+	r)
+		include_metadata=
+		;;
+	R)
+		if [ -z "${modified}" ]; then
+			include_metadata=
+		fi
+		;;
+	v)
+		# Only put variables that are single lines here.
+		for v in TYPE REVISION BRANCH RELEASE VERSION RELDATE; do
+			eval val=\$${v}
+			echo ${v}=\"${val}\"
+		done
+		exit 0
+		;;
+	V)
+		v=$OPTARG
+		eval val=\$${v}
+		echo ${v}=\"${val}\"
+		exit 0
+		;;
+	esac
+done
+shift $((OPTIND - 1))
+
+# VARS_ONLY means no files should be generated, this is just being
+# included.
+[ -n "$VARS_ONLY" ] && return 0
+
 #
 # findvcs dir
 #	Looks up directory dir at world root and up the filesystem
@@ -103,49 +183,6 @@ git_tree_modified()
 	return 1
 }
 
-
-if [ -z "${SYSDIR}" ]; then
-    SYSDIR=$(dirname $0)/..
-fi
-
-RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' ${PARAMFILE:-${SYSDIR}/sys/param.h})
-
-if [ -r "${SYSDIR}/../COPYRIGHT" ]; then
-	year=$(sed -Ee '/^Copyright .* The FreeBSD Project/!d;s/^.*1992-([0-9]*) .*$/\1/g' ${SYSDIR}/../COPYRIGHT)
-else
-	year=$(date +%Y)
-fi
-# look for copyright template
-b=share/examples/etc/bsd-style-copyright
-for bsd_copyright in ../$b ../../$b ../../../$b /usr/src/$b /usr/$b
-do
-	if [ -r "$bsd_copyright" ]; then
-		COPYRIGHT=$(sed \
-		    -e "s/\[year\]/1992-$year/" \
-		    -e 's/\[your name here\]\.* /The FreeBSD Project./' \
-		    -e 's/\[your name\]\.*/The FreeBSD Project./' \
-		    -e '/\[id for your version control system, if any\]/d' \
-		    $bsd_copyright)
-		break
-	fi
-done
-
-# no copyright found, use a dummy
-if [ -z "$COPYRIGHT" ]; then
-	COPYRIGHT="/*-
- * Copyright (c) 1992-$year The FreeBSD Project.
- *
- */"
-fi
-
-# add newline
-COPYRIGHT="$COPYRIGHT
-"
-
-# VARS_ONLY means no files should be generated, this is just being
-# included.
-[ -n "$VARS_ONLY" ] && return 0
-
 LC_ALL=C; export LC_ALL
 if [ ! -r version ]
 then
@@ -274,20 +311,6 @@ if [ -n "$hg_cmd" ] ; then
 		hg=" ${hg}"
 	fi
 fi
-
-include_metadata=true
-while getopts rR opt; do
-	case "$opt" in
-	r)
-		include_metadata=
-		;;
-	R)
-		if [ -z "${modified}" ]; then
-			include_metadata=
-		fi
-	esac
-done
-shift $((OPTIND - 1))
 
 if [ -z "${include_metadata}" ]; then
 	VERINFO="${VERSION}${svn}${git}${hg} ${i}"


More information about the svn-src-all mailing list