1source $stdenv/setup
2
3mkdir -p $out/etc
4
5set -f
6sources_=($sources)
7targets_=($targets)
8modes_=($modes)
9uids_=($uids)
10gids_=($gids)
11set +f
12
13for ((i = 0; i < ${#targets_[@]}; i++)); do
14 source="${sources_[$i]}"
15 target="${targets_[$i]}"
16
17 if [[ "$source" =~ '*' ]]; then
18
19 # If the source name contains '*', perform globbing.
20 mkdir -p $out/etc/$target
21 for fn in $source; do
22 ln -s "$fn" $out/etc/$target/
23 done
24
25 else
26
27 mkdir -p $out/etc/$(dirname $target)
28 if ! [ -e $out/etc/$target ]; then
29 ln -s $source $out/etc/$target
30 else
31 echo "duplicate entry $target -> $source"
32 if test "$(readlink $out/etc/$target)" != "$source"; then
33 echo "mismatched duplicate entry $(readlink $out/etc/$target) <-> $source"
34 exit 1
35 fi
36 fi
37
38 if test "${modes_[$i]}" != symlink; then
39 echo "${modes_[$i]}" > $out/etc/$target.mode
40 echo "${uids_[$i]}" > $out/etc/$target.uid
41 echo "${gids_[$i]}" > $out/etc/$target.gid
42 fi
43
44 fi
45done
46