Commit | Line | Data |
---|---|---|
f1b539a1 MW |
1 | #! /bin/sh |
2 | ### | |
3 | ### Expand a list of symbolic references to other lists. | |
4 | ||
5 | expand () { | |
6 | slaves="" | |
7 | for i in "$@"; do | |
8 | case "$i" in | |
9 | :*) | |
10 | name=${i#:} | |
11 | eval found=\${set_$name+t}\${set_$name-nil} set=\${set_$name} | |
12 | case "$found" in | |
13 | nil) echo >&2 "$0: no such set \`$name'"; exit 1 ;; | |
14 | esac | |
15 | slaves="$slaves $set" | |
16 | ;; | |
17 | *) | |
18 | slaves="$slaves $i" | |
19 | ;; | |
20 | esac | |
21 | done | |
22 | echo $slaves | |
23 | } | |
24 | ||
25 | defset () { | |
26 | setname=$1; shift | |
27 | eval set_$setname='$(expand "$@")' | |
28 | } | |
29 | ||
30 | case $# in | |
31 | 0 | 1) | |
32 | echo >&2 "Usage: $0 FILE ITEM|:LIST ..." | |
33 | exit 1 | |
34 | ;; | |
35 | esac | |
36 | ||
37 | . "$1"; shift | |
38 | expand "$@" | |
39 |