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