Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Jan 2013 20:10:49 +0000 (UTC)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r245470 - projects/mtree/tools
Message-ID:  <201301152010.r0FKAnWc024954@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brooks
Date: Tue Jan 15 20:10:49 2013
New Revision: 245470
URL: http://svnweb.freebsd.org/changeset/base/245470

Log:
  Implement install -l support using ln -f to allow programs using LINKS
  or MLINKS to be bootstrap tools.

Modified:
  projects/mtree/tools/install.sh

Modified: projects/mtree/tools/install.sh
==============================================================================
--- projects/mtree/tools/install.sh	Tue Jan 15 19:26:17 2013	(r245469)
+++ projects/mtree/tools/install.sh	Tue Jan 15 20:10:49 2013	(r245470)
@@ -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;;
+    -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 -fs "$@"
+	else
+		ln -f "$@"
+	fi
+elif [ -z "$dirmode" ]; then
 	exec install -p "$@"
 else
 	exec install -d "$@"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301152010.r0FKAnWc024954>