From cb411d1a3d540a46fc3bb370d47d97cdef667639 Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Mon, 18 May 2009 12:59:01 +0000 Subject: [PATCH] Synced with trunk @ 15580 svn path=/nixos/branches/modular-nixos/; revision=15645 --- helpers/make-etc.sh | 10 +++++++++- upstart-jobs/gather.nix | 10 +++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/helpers/make-etc.sh b/helpers/make-etc.sh index a7643b63c5b..4b7bb68be4b 100644 --- a/helpers/make-etc.sh +++ b/helpers/make-etc.sh @@ -7,7 +7,15 @@ targets_=($targets) modes_=($modes) for ((i = 0; i < ${#targets_[@]}; i++)); do ensureDir $out/etc/$(dirname ${targets_[$i]}) - ln -s ${sources_[$i]} $out/etc/${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 diff --git a/upstart-jobs/gather.nix b/upstart-jobs/gather.nix index 47193167360..726503f1917 100644 --- a/upstart-jobs/gather.nix +++ b/upstart-jobs/gather.nix @@ -6,8 +6,12 @@ runCommand "upstart-jobs" {inherit jobs;} " ensureDir $out/etc/event.d for i in $jobs; do - if test -d $i; then - ln -s $i/etc/event.d/* $out/etc/event.d/ - fi + if ln -s $i . ; then + if test -d $i; then + ln -s $i/etc/event.d/* $out/etc/event.d/ + fi + else + echo Duplicate entry: $i; + fi; done "