diff options
author | Cheng-Lung Sung <clsung@FreeBSD.org> | 2006-08-30 15:14:00 +0000 |
---|---|---|
committer | Cheng-Lung Sung <clsung@FreeBSD.org> | 2006-08-30 15:14:00 +0000 |
commit | 6d4a92f5ac19e03d9ea282d7415a89a9f6542798 (patch) | |
tree | 72aded27fe62d79a71eb5c99a35813414d5869ae /ports-mgmt/portless | |
parent | Update to 0.48 (diff) |
- Update to 0.2.5
- Addition of -W option and minor bug fixed where whitespace at begin/end of
portglob argument was not properly rejected.
PR: ports/102695
Submitted by: maintainer (Martin Kammerhofer)
Notes
Notes:
svn path=/head/; revision=171674
Diffstat (limited to 'ports-mgmt/portless')
-rw-r--r-- | ports-mgmt/portless/Makefile | 2 | ||||
-rw-r--r-- | ports-mgmt/portless/files/portless.1 | 25 | ||||
-rw-r--r-- | ports-mgmt/portless/files/portless.sh | 37 |
3 files changed, 40 insertions, 24 deletions
diff --git a/ports-mgmt/portless/Makefile b/ports-mgmt/portless/Makefile index 2974c7d9b03b..d1a3e2045b44 100644 --- a/ports-mgmt/portless/Makefile +++ b/ports-mgmt/portless/Makefile @@ -6,7 +6,7 @@ # PORTNAME= portless -PORTVERSION= 0.2.4 +PORTVERSION= 0.2.5 CATEGORIES= misc MASTER_SITES= # empty DISTFILES= # none diff --git a/ports-mgmt/portless/files/portless.1 b/ports-mgmt/portless/files/portless.1 index 2b0e51c52cae..0c8dcb5b6c69 100644 --- a/ports-mgmt/portless/files/portless.1 +++ b/ports-mgmt/portless/files/portless.1 @@ -22,11 +22,11 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)portless.1,v 1.7 2006/08/13 10:23:14 martin Exp +.\" @(#)portless.1,v 1.10 2006/08/30 09:36:44 martin Exp .\" .\" Note: The date here should be updated whenever a non-trivial .\" change is made to the manual page. -.Dd August 13, 2006 +.Dd August 30, 2006 .Dt PORTLESS 1 .Os .Sh NAME @@ -38,7 +38,7 @@ .Op Fl P Ar pager .Ar portglob... .Nm -.Op Fl w +.Op Fl W | w .Ar portglob... .Sh DESCRIPTION .Nm @@ -58,7 +58,7 @@ argument literal (not as a shell glob). .It Fl I Ignore case when matching .Ar portglob -against the ports tree. This option is only effective when +against the ports tree. This option is only effective if .Ar portglob contains at least one unquoted globbing meta-character ( .Sq Li * , @@ -93,8 +93,19 @@ Rather than browsing files inside the ports tree just echo the names of directories matching .Ar portglob to stdout. -This option is incompatible with all other options. +.It Fl W +Like +.Fl w +but echoes just the last two components of the directory (i.e.\& +.Em category/portname +) to stdout. .El +.Lp +Options +.Fl W +and +.Fl w +are incompatible with all other options. .Sh ENVIRONMENT The .Nm @@ -129,8 +140,4 @@ The .Nm utility and this manual page were written by .An Martin Kammerhofer Aq mkamm@gmx.net . -.Sh BUGS -The -.Fl w -option is a retrofitted hack. .\" EOF diff --git a/ports-mgmt/portless/files/portless.sh b/ports-mgmt/portless/files/portless.sh index 27d0aee134a2..d8f112c5844d 100644 --- a/ports-mgmt/portless/files/portless.sh +++ b/ports-mgmt/portless/files/portless.sh @@ -1,6 +1,6 @@ #! @BASH@ -- # (X)Emacs: -*- mode: Shell-Script; coding: iso8859-1; -*- -# @(#)portless.sh,v 1.11 2006/08/13 10:23:14 martin Exp +# @(#)portless.sh,v 1.12 2006/08/30 09:21:22 martin Exp # Show "pkg-descr" file of matching port(s). # # Copyright (c) 2006 Martin Kammerhofer <mkamm@gmx.net> @@ -29,7 +29,7 @@ Script=`basename $0` # name of this script # set defaults -for opt in d f I i M m p w; do +for opt in d f I i M m P p W w; do eval opt_$opt="" done PORTSDIR=${PORTSDIR:-/usr/ports} @@ -45,7 +45,7 @@ usage() echo >&2 "$Script: $1" shift done - echo >&2 "usage: $Script [-dfIiMmpw] [-P pager] 'portglob'..." + echo >&2 "usage: $Script [-dfIiMmp | -Ww] [-P pager] 'portglob'..." exit 64 # EX_USAGE } @@ -60,20 +60,21 @@ addopt() } # process options -while getopts "D:dfIiMmpP:wx" option +while getopts "D:dfIiMmpP:Wwx" option do case "$option" in (D) PORTSDIR="$OPTARG";; # undocumented (d) addopt d "$PKGDESCR";; (f) opt_f="f";; (I) shopt -s nocaseglob || - usage "Option -I needs bash!" + usage "option -I needs bash!" opt_I="I";; (i) addopt i "distinfo";; (M) addopt M "Makefile";; (m) addopt m "pkg-message";; (p) addopt p "pkg-plist";; - (P) PAGER="$OPTARG";; + (P) PAGER="$OPTARG"; opt_P="P";; + (W) opt_W="W";; (w) opt_w="w";; (x) set -x;; # undocumented (*) usage;; @@ -81,12 +82,13 @@ while getopts "D:dfIiMmpP:wx" option done shift $(($OPTIND - 1)) [ -d "$PORTSDIR" ] || fatal "No such directory '$PORTSDIR'" -if [ -n "$opt_w" ]; then - [ -n "$filelist" ] && usage "option -w not compatible with other options" +if [ -n "$opt_W" -o -n "$opt_w" ]; then + [ -n "$filelist" -o -n "$opt_P" -o -n "$opt_W" -a -n "$opt_w" ] && + usage "options -W and -w are not compatible with any other option!" PAGER="/bin/ls -1d" # just echo directory name(s) filelist="." elif [ -n "$opt_f" -a -n "$opt_I" ]; then - usage "only one of options -f and -I is useful" + usage "only one of options -f and -I is useful!" else [ -n "$filelist" ] || filelist="$PKGDESCR" fi @@ -105,7 +107,6 @@ page() { dirglob=$1 portglob=$2 shift 2 - set +f for f in $filelist; do if [ -n "$opt_f" ]; then set -- "$@" "$PORTSDIR"$dirglob"$portglob/$f" @@ -113,14 +114,22 @@ page() { set -- "$@" "$PORTSDIR"$dirglob$portglob/"$f" fi done - $PAGER "$@" || { rc=$?; return $rc; } # remember last error code + if [ -n "$opt_W" -o -n "$opt_w" ]; then + lstrip="" + [ -n "$opt_W" ] && lstrip=-e\ 's;^.*/\([^/]*/[^/]*\)$;\1;' + { + $PAGER "$@" | grep -Ev '/distfiles/|/packages/' | + sed -e 's;/.$;;' $lstrip + } || { rc=$?; return $rc; } # remember last error code + else + $PAGER "$@" || { rc=$?; return $rc; } # remember last error code + fi } # main for p in "$@"; do - set -f - set -- $p - [ $# != 1 ] && usage "portglob '$p' contains whitespace!" + expr "$p" : ".*[$IFS]" >/dev/null && + usage "portglob '$p' contains whitespace!" case "$p" in (*/*/*) usage "portglob '$p' contains more than one slash!";; |