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