ports/98950: [maintainer update] upgrade misc/portless to 0.2
Martin Kammerhofer
dada at pluto.tugraz.at
Wed Jun 14 17:10:42 UTC 2006
>Number: 98950
>Category: ports
>Synopsis: [maintainer update] upgrade misc/portless to 0.2
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Wed Jun 14 17:10:23 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Martin Kammerhofer
>Release: FreeBSD 6.1-STABLE i386
>Organization:
Graz Uni
>Environment:
System: FreeBSD Martin.liebt.Susi 6.1-STABLE FreeBSD 6.1-STABLE #6: Wed Jun 7 12:03:19 CEST 2006 toor at Martin.liebt.Susi:/usr/src/sys/i386/compile/P2B-S i386
>Description:
Upgrade to 0.2.
Make file selection options cumulative rather than mutually exclusive.
>How-To-Repeat:
>Fix:
diff -ruN /usr/ports/misc/portless/Makefile misc/portless/Makefile
--- /usr/ports/misc/portless/Makefile Tue Jun 13 02:21:54 2006
+++ misc/portless/Makefile Wed Jun 14 11:56:41 2006
@@ -6,7 +6,7 @@
#
PORTNAME= portless
-PORTVERSION= 0.1.1
+PORTVERSION= 0.2
CATEGORIES= misc
MASTER_SITES= # empty
DISTFILES= # none
diff -ruN /usr/ports/misc/portless/files/portless.1 misc/portless/files/portless.1
--- /usr/ports/misc/portless/files/portless.1 Sun Jun 11 11:43:46 2006
+++ misc/portless/files/portless.1 Wed Jun 14 14:44:25 2006
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" @(#)portless.1,v 1.1 2006/06/08 10:10:56 martin Exp
+.\" @(#)portless.1,v 1.2 2006/06/14 12:44:25 martin Exp
.\"
.\" Note: The date here should be updated whenever a non-trivial
.\" change is made to the manual page.
@@ -94,12 +94,13 @@
.It Pa /usr/ports/*/*/*
.El
.Sh EXAMPLES
-The following is an example of a typical usage
-of the
+The following are examples of typical usage of the
.Nm
command:
.Pp
-.Dl "portless gcc\e*"
+.Dl "portless cvsweb\e*"
+.Dl "portless lang/\e*doc"
+.Dl "portless 'www/*python*'"
.Sh AUTHOR
The
.Nm
diff -ruN /usr/ports/misc/portless/files/portless.sh misc/portless/files/portless.sh
--- /usr/ports/misc/portless/files/portless.sh Tue Jun 13 02:21:54 2006
+++ misc/portless/files/portless.sh Wed Jun 14 15:02:37 2006
@@ -1,6 +1,6 @@
#! /bin/sh --
# (X)Emacs: -*- mode: Shell-Script; coding: iso8859-1; -*-
-# @(#)portless.sh,v 1.3 2006/06/08 10:10:56 martin Exp
+# @(#)portless.sh,v 1.7 2006/06/14 13:02:37 martin Exp
# Show "pkg-descr" file of matching port(s).
#
# Copyright (c) 2006 Martin Kammerhofer <mkamm at gmx.net>
@@ -29,10 +29,14 @@
Script=`basename $0` # name of this script
# set defaults
-opt_f=""
+for opt in d f i M m p; do
+ eval opt_$opt=""
+done
PORTSDIR=${PORTSDIR:-/usr/ports}
PAGER=${PAGER:-less -e}
PKGDESCR="pkg-descr"
+filelist=""
+rc=0
# print usage message to stderr and exit
usage()
@@ -45,48 +49,76 @@
exit 64 # EX_USAGE
}
+fatal() { echo >&2 "$Script: $*"; exit 70; } # EX_SOFTWARE
+
+# Add file $2 corresponding to option $1 to $filelist.
+# Do not add any file twice.
+addopt()
+{
+ eval "[ -n \"\$opt_$1\" ] && return; opt_$1='$1' || fatal 'addopt $*'"
+ filelist="$filelist $2"
+}
+
# process options
-while getopts "D:dfiMmpP:" option
+while getopts "D:dfiMmpP:x" option
do
case "$option" in
- (D) PORTSDIR="$OPTARG";;
- (d) PKGDESCR="pkg-descr";;
+ (D) PORTSDIR="$OPTARG";; # undocumented
+ (d) addopt d "$PKGDESCR";;
(f) opt_f="f";;
- (i) PKGDESCR="distinfo";;
- (M) PKGDESCR="Makefile";;
- (m) PKGDESCR="pkg-message";;
- (p) PKGDESCR="pkg-plist";;
+ (i) addopt i "distinfo";;
+ (M) addopt M "Makefile";;
+ (m) addopt m "pkg-message";;
+ (p) addopt p "pkg-plist";;
(P) PAGER="$OPTARG";;
+ (x) set -x;; # undocumented
(*) usage;;
esac
done
shift $(($OPTIND - 1))
+[ -d "$PORTSDIR" ] || fatal "No such directory '$PORTSDIR'"
+[ -n "$filelist" ] || filelist="$PKGDESCR"
# there must be at least one argument
if [ $# = 0 ]; then
usage
fi
+# View $PORTSDIR$1$2/{$filelist} with $PAGER.
+# Always glob $1 but do not glob $2 when option -f was given.
+# (Slightly complicated because /bin/sh may not understand
+# csh-like {file1,file2} glob patterns.)
+page() {
+ [ $# = 2 ] || fatal "page $*"
+ dirglob=$1
+ portglob=$2
+ shift 2
+ for f in $filelist; do
+ if [ -n "$opt_f" ]; then
+ set -- "$@" "$PORTSDIR"$dirglob"$portglob/$f"
+ else
+ set -- "$@" "$PORTSDIR"$dirglob$portglob/"$f"
+ fi
+ done
+ $PAGER "$@" || { rc=$?; return $rc; } # remember last error code
+}
+
# main
for p in "$@"; do
+ set -- $p
+ [ $# != 1 ] && usage "portglob '$p' contains whitespace!"
case "$p" in
(*/*/*)
usage "portglob '$p' contains more than one slash!";;
(*/*)
- if [ -n "$opt_f" ]; then
- $PAGER "$PORTSDIR/$p/$PKGDESCR"
- else
- $PAGER "$PORTSDIR"/$p/"$PKGDESCR"
- fi;;
+ page "/" "$p";;
(*)
- if [ -n "$opt_f" ]; then
- $PAGER "$PORTSDIR"/[a-z]*/"$p/$PKGDESCR"
- else
- $PAGER "$PORTSDIR"/[a-z]*/$p/"$PKGDESCR"
- fi;;
+ page "/[a-z]*/" "$p";;
esac
done
+
+exit $rc
#EOF#
diff -ruN /usr/ports/misc/portless/pkg-descr misc/portless/pkg-descr
--- /usr/ports/misc/portless/pkg-descr Sun Jun 11 11:43:46 2006
+++ misc/portless/pkg-descr Wed Jun 14 14:44:23 2006
@@ -1,9 +1,11 @@
-portless is a small shell script which lets FreeBSD users quickly browse
-port descriptions given the port's name or a glob. Basically to view
-the descriptions of GCC (related) ports you type
+The portless utility is a small shell script which lets FreeBSD users
+quickly browse port descriptions given the port's name or a
+glob. Basically to view the descriptions of GCC (related) ports you
+simply type
portless gcc\*
-and portless will display the descriptions of all gcc* ports.
-There are options to display the postinstall messages or Makefiles instead.
+and it will display all descriptions of the gcc* ports.
+There are options to display the port's postinstall message or
+Makefile too. A manpage is included.
- Martin Kammerhofer
mkamm at gmx.net
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list