summary refs log tree commit diff
path: root/modules/system/etc/make-etc.sh
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-05-28 13:17:56 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-05-28 13:17:56 +0000
commit3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7 (patch)
tree4ed77f7bab5772a0b423f87d855d02bce869b17f /modules/system/etc/make-etc.sh
parent14f1c81822d3eb855ea47abf9d53bc4b06659385 (diff)
downloadnixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.tar
nixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.tar.gz
nixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.tar.bz2
nixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.tar.lz
nixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.tar.xz
nixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.tar.zst
nixpkgs-3c84d56273ff6a5eb07d83448a3b046cb6c5ebc7.zip
* Move the /etc generation to modules/system/etc.
svn path=/nixos/branches/modular-nixos/; revision=15767
Diffstat (limited to 'modules/system/etc/make-etc.sh')
-rw-r--r--modules/system/etc/make-etc.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/modules/system/etc/make-etc.sh b/modules/system/etc/make-etc.sh
new file mode 100644
index 00000000000..4b7bb68be4b
--- /dev/null
+++ b/modules/system/etc/make-etc.sh
@@ -0,0 +1,22 @@
+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