source $stdenv/setup ensureDir $out/etc sources_=($sources) targets_=($targets) modes_=($modes) for ((i = 0; i < ${#targets_[@]}; i++)); do ensureDir $out/etc/$(dirname ${targets_[$i]}) if ! test -e $out/etc/${targets_[$i]}; then ln -s ${sources_[$i]} $out/etc/${targets_[$i]}; else echo Duplicate entry "${targets_[$i]} -> ${sources_[$i]}" if test "$(readlink "$targets_[$i]")" -ne "$sources_[$i]"; then echo Mismatched duplicate entry "$(readlink "$targets_[$i]") "'<>'" $sources_[$i]" exit 1 fi fi; if test "${modes_[$i]}" != symlink; then echo "${modes_[$i]}" > $out/etc/${targets_[$i]}.mode fi done