svn commit: r245751 - head/tools

Brooks Davis brooks at FreeBSD.org
Mon Jan 21 22:32:01 UTC 2013


Author: brooks
Date: Mon Jan 21 22:32:00 2013
New Revision: 245751
URL: http://svnweb.freebsd.org/changeset/base/245751

Log:
  Implement the -l option using ln(1) to facilitate boostrapping.
  
  Ignore the new options -D, -h, -T, and -U.  Adjust -M support to ignore
  an argument.
  
  Sponsored by:	DARPA, AFRL
  Reviewed by:	ian, ray, rpaulo

Modified:
  head/tools/install.sh

Modified: head/tools/install.sh
==============================================================================
--- head/tools/install.sh	Mon Jan 21 22:07:34 2013	(r245750)
+++ head/tools/install.sh	Mon Jan 21 22:32:00 2013	(r245751)
@@ -30,12 +30,22 @@
 
 # parse install's options and ignore them completely.
 dirmode=""
+linkmode=""
 while [ $# -gt 0 ]; do
     case $1 in
     -d) dirmode="YES"; shift;;
-    -[bCcMpSsv]) shift;;
-    -[Bfgmo]) shift; shift;;
-    -[Bfgmo]*) shift;;
+    -[bCcpSsv]) shift;;
+    -[BDfghMmNoTU]) shift; shift;;
+    -[BDfghMmNoTU]*) shift;;
+    -l)
+	shift
+	case $1 in
+	*[sm]*) linkmode="symbolic";;	# XXX: 'm' should prefer hard
+	*h*) linkmode="hard";;
+	*) echo "invalid link mode"; exit 1;;
+	esac
+	shift
+	;;
     *) break;
     esac
 done
@@ -51,7 +61,13 @@ if [ -z "$dirmode" ] && [ "$#" -lt 2 ]; 
 fi
 
 # the remaining arguments are assumed to be files/dirs only.
-if [ -z "$dirmode" ]; then
+if [ -n "${linkmode}" ]; then
+	if [ "${linkmode}" == "symbolic" ]; then
+		ln -fsh "$@"
+	else
+		ln -f "$@"
+	fi
+elif [ -z "$dirmode" ]; then
 	exec install -p "$@"
 else
 	exec install -d "$@"


More information about the svn-src-head mailing list