Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports
Path: blob/main/Tools/scripts/portsvar.sh
18157 views
1
#!/bin/sh
2
#
3
# portsvar.sh:
4
# print out variable defined through bsd.port.mk
5
#
6
# example:
7
# % portsvar.sh PORTSDIR OSVERSION
8
# PORTSDIR = /usr/ports
9
# OSVERSION = 600034
10
# % portsvar.sh -e "PORTS[^_]"
11
# PORTSDIR = /usr/ports
12
# PORTSSUPFILE = /usr/share/examples/cvsup/ports-supfile
13
# % portsvar.sh USE_RUBY=yes RUBY_VER RUBY_ARCH
14
# RUBY_VER = 1.8
15
# RUBY_ARCH = i386-freebsd6
16
# % portsvar.sh -w ruby RUBY_VER RUBY_ARCH
17
# RUBY_VER = 1.8
18
# RUBY_ARCH = i386-freebsd6
19
# % portsvar.sh -w kde -e KDE_
20
# KDE_MAINTAINER = [email protected]
21
# KDE_ORIGVER = ${KDE_VERSION}
22
# KDE_PREFIX = ${LOCALBASE}
23
# KDE_VERSION = 3.5.0
24
# MASTER_SITE_KDE_kde = ${kmaster:S@%SUBDIR%/@@g}
25
# % portsvar.sh -a
26
# list all variables through bsd.port.mk
27
# % portsvar.sh -a -w kde
28
# list all variables through bsd.port.mk including kde
29
#
30
# MAINTAINER= [email protected]
31
32
usage_msg="usage:
33
portsvar.sh [-a] [-e] [-w target] [-h] [var=val ...] var1 [var2 ...]
34
print out variable that includes var1 [var2 ...] through bsd.port.mk
35
-a print all variables defined through bsd.port.mk
36
-e regex search mode
37
-w set target bsd.*.mk name, for ex. -w kde
38
-h print this message"
39
40
# default values
41
alllistmode=off
42
regexmode=off
43
44
# options
45
while getopts aew:h? option
46
do
47
case "$option" in
48
a)
49
alllistmode=on
50
;;
51
e)
52
regexmode=on
53
;;
54
w)
55
case $OPTARG in
56
apache) setvar="$setvar USE_APACHE=yes";;
57
autotools) setvar="$setvar USE_AUTOTOOLS=yes";;
58
database) setvar="$setvar USE_MYSQL=yes USE_PGSQL=yes"
59
setvar="$setvar USE_BDB=yes";;
60
emacs) setvar="$setvar EMACS_PORT_NAME=yes";;
61
gcc) setvar="$setvar USE_GCC=yes";;
62
gnome) setvar="$setvar USE_GNOME=yes";;
63
gnustep) setvar="$setvar USE_GNUSTEP=yes";;
64
gstreamer) setvar="$setvar USE_GSTREAMER=yes";;
65
java) setvar="$setvar USE_JAVA=yes";;
66
kde) setvar="$setvar USE_QT_VER=3";;
67
openssl) setvar="$setvar USE_OPENSSL=yes";;
68
php) setvar="$setvar USE_PHP=yes";;
69
python) setvar="$setvar USE_PYTHON=yes";;
70
ruby) setvar="$setvar USE_RUBY=yes";;
71
sdl) setvar="$setvar USE_SDL=yes";;
72
tcl) setvar="$setvar USE_TCL=yes USE_TK=yes";;
73
esac
74
;;
75
h|\?)
76
echo "$usage_msg" 1>&2
77
exit 1
78
;;
79
esac
80
done
81
shift $(($OPTIND - 1))
82
83
# variables and set-variables
84
for target in $@
85
do
86
case $target in
87
*=*)
88
setvar="$setvar $target"
89
;;
90
*)
91
var="$var $target"
92
;;
93
esac
94
done
95
96
# all list
97
case $alllistmode in
98
on)
99
make -f bsd.port.mk $setvar -dv 2>&1 | grep Global: |
100
sed 's/Global://' | sort -u | uniq
101
exit 0
102
;;
103
esac
104
105
# usage
106
case $var in
107
"")
108
echo "$usage_msg" 1>&2
109
exit 1
110
;;
111
esac
112
113
# main
114
case $regexmode in
115
on)
116
regex="^ " # like nop
117
for target in $var
118
do
119
regex="$regex|^[^=]*${target}.*=.*"
120
done
121
make -f bsd.port.mk $setvar -dv 2>&1 | grep Global: |
122
sed 's/Global://' | sort -u | uniq | egrep "($regex)"
123
;;
124
off)
125
for target in $var
126
do
127
echo -n "$target = "
128
make -f bsd.port.mk $setvar -V $target
129
done
130
;;
131
esac
132
133