blob: 03e2e1c97fdfcd45a762aded0ce34609ed93c014 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
#!/bin/sh
# packagelists.sh - expands package list includes
# Copyright (C) 2006-2008 Daniel Baumann <daniel@debian.org>
#
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
# This is free software, and you are welcome to redistribute it
# under certain conditions; see COPYING for details.
Expand_packagelist ()
{
_LH_EXPAND_QUEUE="$(basename "${1}")"
shift
while [ -n "${_LH_EXPAND_QUEUE}" ]
do
_LH_LIST_NAME="$(echo ${_LH_EXPAND_QUEUE} | cut -d" " -f1)"
_LH_EXPAND_QUEUE="$(echo ${_LH_EXPAND_QUEUE} | cut -s -d" " -f2-)"
_LH_LIST_LOCATION=""
_LH_NESTED=0
_LH_ENABLED=1
for _LH_SEARCH_PATH in ${@} "${LH_BASE:-/usr/share/live-helper}/lists"
do
if [ -e "${_LH_SEARCH_PATH}/${_LH_LIST_NAME}" ]
then
_LH_LIST_LOCATION="${_LH_SEARCH_PATH}/${_LH_LIST_NAME}"
break
fi
done
if [ -z "${_LH_LIST_LOCATION}" ]
then
echo "W: Unknown package list '${_LH_LIST_NAME}'" >&2
continue
fi
while read _LH_LINE
do
case "${_LH_LINE}" in
\#if\ *)
if [ ${_LH_NESTED} -eq 1 ]
then
echo "E: Nesting conditionals is not supported" >&2
exit 1
fi
_LH_NESTED=1
_LH_NEEDLE="$(echo "${_LH_LINE}" | cut -d' ' -f3-)"
_LH_HAYSTACK="$(eval "echo \$LH_$(echo "${_LH_LINE}" | cut -d' ' -f2)")"
_LH_ENABLED=0
for _LH_NEEDLE_PART in ${_LH_NEEDLE}
do
for _LH_HAYSTACK_PART in ${_LH_HAYSTACK}
do
if [ "${_LH_NEEDLE_PART}" = "${_LH_HAYSTACK_PART}" ]
then
_LH_ENABLED=1
fi
done
done
;;
\#endif*)
_LH_NESTED=0
_LH_ENABLED=1
;;
\#*)
if [ ${_LH_ENABLED} -ne 1 ]
then
continue
fi
# Find includes
_LH_INCLUDES="$(echo "${_LH_LINE}" | sed -n \
-e 's|^#<include> \([^ ]*\)|\1|gp' \
-e 's|^#include <\([^ ]*\)>|\1|gp')"
# Add to queue
_LH_EXPAND_QUEUE="$(echo ${_LH_EXPAND_QUEUE} ${_LH_INCLUDES} |
sed -e 's|[ ]*$||' -e 's|^[ ]*||')"
;;
*)
if [ ${_LH_ENABLED} -eq 1 ]
then
echo "${_LH_LINE}"
fi
;;
esac
done < "${_LH_LIST_LOCATION}"
done
}
|