From owner-svn-src-projects@FreeBSD.ORG Tue Jan 15 20:10:49 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id E9641E82; Tue, 15 Jan 2013 20:10:49 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id DC18732D; Tue, 15 Jan 2013 20:10:49 +0000 (UTC) Received: from svn.freebsd.org (svn.FreeBSD.org [8.8.178.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0FKAnRW024955; Tue, 15 Jan 2013 20:10:49 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0FKAnWc024954; Tue, 15 Jan 2013 20:10:49 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201301152010.r0FKAnWc024954@svn.freebsd.org> From: Brooks Davis Date: Tue, 15 Jan 2013 20:10:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245470 - projects/mtree/tools X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jan 2013 20:10:50 -0000 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 "$@"