Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jul 2012 07:22:38 +0000 (UTC)
From:      Doug Barton <dougb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r238649 - user/dougb/portmaster
Message-ID:  <201207200722.q6K7Mcba068500@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dougb
Date: Fri Jul 20 07:22:37 2012
New Revision: 238649
URL: http://svn.freebsd.org/changeset/base/238649

Log:
  Use a more robust method of determining portdir from $PWD. This also works
  for bare 'portmaster' with no arguments now, if you're in a port directory.

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Fri Jul 20 07:17:24 2012	(r238648)
+++ user/dougb/portmaster/portmaster	Fri Jul 20 07:22:37 2012	(r238649)
@@ -3118,12 +3118,18 @@ if [ -z "$REPLACE_ORIGIN" ]; then
 	[ -n "$portdir" ] && { argv=$portdir ; unset portdir; }
 	argv=${argv:-$1} ; argv=${argv%/} ; argv=`globstrip $argv`
 	case "$argv" in
-	'')	echo '' ; no_valid_port ;;
 	$pd/*)	portdir=${argv#$pd/} ;;
 	$pdb/*)	upg_port=${argv#$pdb/} ;;
 	/*)	echo '' ; no_valid_port ;;
 	*/*)	portdir=$argv ;;
-	\.)	portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink
+	\.|'')	portdir="$PWD"
+		while : ; do
+			case "$portdir" in
+			*/*/*)	portdir="${portdir#*/}" ;;
+			*/*)	break ;;
+			*)	echo '' ; no_valid_port ;;
+			esac
+		done ;;
 	*)	[ -d "$pdb/$argv" ] && upg_port=$argv ;;
 	esac
 



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