mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-28 05:29:48 +00:00
Add portsvar.sh schell script into Tools/scripts.
portsvar.sh - print out variable defined through bsd.port.mk example: % portsvar.sh PORTSDIR OSVERSION PORTSDIR = /usr/ports OSVERSION = 600034 % portsvar.sh -e "PORTS[^_]" PORTSDIR = /usr/ports PORTSSUPFILE = /usr/share/examples/cvsup/ports-supfile % portsvar.sh USE_RUBY=yes RUBY_VER RUBY_ARCH RUBY_VER = 1.8 RUBY_ARCH = i386-freebsd6 % portsvar.sh -w ruby RUBY_VER RUBY_ARCH RUBY_VER = 1.8 RUBY_ARCH = i386-freebsd6 % portsvar.sh -w kde -e KDE_ KDE_MAINTAINER = will@FreeBSD.org KDE_ORIGVER = ${KDE_VERSION} KDE_PREFIX = ${LOCALBASE} KDE_VERSION = 3.5.0 MASTER_SITE_KDE_kde = ${kmaster:S@%SUBDIR%/@@g} % portsvar.sh -a list all variables through bsd.port.mk % portsvar.sh -a -w kde list all variables through bsd.port.mk including kde portsvar.sh is easy tool to check out the variables used in /usr/ports/Mk/bsd.*.mk.
This commit is contained in:
parent
7c7c67df00
commit
e1ad7a3739
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=153236
133
Tools/scripts/portsvar.sh
Executable file
133
Tools/scripts/portsvar.sh
Executable file
@ -0,0 +1,133 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# portsvar.sh:
|
||||
# print out variable defined through bsd.port.mk
|
||||
#
|
||||
# example:
|
||||
# % portsvar.sh PORTSDIR OSVERSION
|
||||
# PORTSDIR = /usr/ports
|
||||
# OSVERSION = 600034
|
||||
# % portsvar.sh -e "PORTS[^_]"
|
||||
# PORTSDIR = /usr/ports
|
||||
# PORTSSUPFILE = /usr/share/examples/cvsup/ports-supfile
|
||||
# % portsvar.sh USE_RUBY=yes RUBY_VER RUBY_ARCH
|
||||
# RUBY_VER = 1.8
|
||||
# RUBY_ARCH = i386-freebsd6
|
||||
# % portsvar.sh -w ruby RUBY_VER RUBY_ARCH
|
||||
# RUBY_VER = 1.8
|
||||
# RUBY_ARCH = i386-freebsd6
|
||||
# % portsvar.sh -w kde -e KDE_
|
||||
# KDE_MAINTAINER = will@FreeBSD.org
|
||||
# KDE_ORIGVER = ${KDE_VERSION}
|
||||
# KDE_PREFIX = ${LOCALBASE}
|
||||
# KDE_VERSION = 3.5.0
|
||||
# MASTER_SITE_KDE_kde = ${kmaster:S@%SUBDIR%/@@g}
|
||||
# % portsvar.sh -a
|
||||
# list all variables through bsd.port.mk
|
||||
# % portsvar.sh -a -w kde
|
||||
# list all variables through bsd.port.mk including kde
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# MAINTAINER= daichi@freebsd.org
|
||||
|
||||
usage_msg="usage:
|
||||
portsvar.sh [-a] [-e] [-w target] [-h] [var=val ...] var1 [var2 ...]
|
||||
print out variable that includes var1 [var2 ...] through bsd.port.mk
|
||||
-a print all variables defined through bsd.port.mk
|
||||
-e regex search mode
|
||||
-w set target bsd.*.mk name, for ex. -w kde
|
||||
-h print this message"
|
||||
|
||||
# default values
|
||||
alllistmode=off
|
||||
regexmode=off
|
||||
|
||||
# options
|
||||
while getopts aew:h? option
|
||||
do
|
||||
case "$option" in
|
||||
a)
|
||||
alllistmode=on
|
||||
;;
|
||||
e)
|
||||
regexmode=on
|
||||
;;
|
||||
w)
|
||||
case $OPTARG in
|
||||
apache) setvar="$setvar USE_APACHE=yes";;
|
||||
autotools) setvar="$setvar USE_AUTOTOOLS=yes";;
|
||||
database) setvar="$setvar USE_MYSQL=yes USE_PGSQL=yes"
|
||||
setvar="$setvar USE_BDB=yes USE_SQLITE=yes";;
|
||||
emacs) setvar="$setvar EMACS_PORT_NAME=yes";;
|
||||
gcc) setvar="$setvar USE_GCC=yes";;
|
||||
gnome) setvar="$setvar USE_GNOME=yes";;
|
||||
gnustep) setvar="$setvar USE_GNUSTEP=yes";;
|
||||
gstreamer) setvar="$setvar USE_GSTREAMER=yes";;
|
||||
java) setvar="$setvar USE_JAVA=yes";;
|
||||
kde) setvar="$setvar USE_QT_VER=3";;
|
||||
openssl) setvar="$setvar USE_OPENSSL=yes";;
|
||||
php) setvar="$setvar USE_PHP=yes";;
|
||||
python) setvar="$setvar USE_PYTHON=yes";;
|
||||
ruby) setvar="$setvar USE_RUBY=yes";;
|
||||
sdl) setvar="$setvar USE_SDL=yes";;
|
||||
tcl) setvar="$setvar USE_TCL=yes USE_TK=yes";;
|
||||
esac
|
||||
;;
|
||||
h|\?)
|
||||
echo "$usage_msg" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
# variables and set-variables
|
||||
for target in $@
|
||||
do
|
||||
case $target in
|
||||
*=*)
|
||||
setvar="$setvar $target"
|
||||
;;
|
||||
*)
|
||||
var="$var $target"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# all list
|
||||
case $alllistmode in
|
||||
on)
|
||||
make -f bsd.port.mk $setvar -dv 2>&1 | grep Global: |
|
||||
sed 's/Global://' | sort -u | uniq
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# usage
|
||||
case $var in
|
||||
"")
|
||||
echo "$usage_msg" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# main
|
||||
case $regexmode in
|
||||
on)
|
||||
regex="^ " # like nop
|
||||
for target in $var
|
||||
do
|
||||
regex="$regex|^[^=]*${target}.*=.*"
|
||||
done
|
||||
make -f bsd.port.mk $setvar -dv 2>&1 | grep Global: |
|
||||
sed 's/Global://' | sort -u | uniq | egrep "($regex)"
|
||||
;;
|
||||
off)
|
||||
for target in $var
|
||||
do
|
||||
echo -n "$target = "
|
||||
make -f bsd.port.mk $setvar -V $target
|
||||
done
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user