Author: eelco
Date: Thu May 17 18:43:45 2012
New Revision: 34158
URL: https://nixos.org/websvn/nix/?rev=34158&sc=1
Log:
* Support globbing in the source attribute of environment.etc entries.
Modified:
nixos/trunk/modules/services/security/fail2ban.nix
nixos/trunk/modules/system/etc/make-etc.sh
Modified: nixos/trunk/modules/services/security/fail2ban.nix
==============================================================================
--- nixos/trunk/modules/services/security/fail2ban.nix Thu May 17 18:19:48
2012 (r34157)
+++ nixos/trunk/modules/services/security/fail2ban.nix Thu May 17 18:43:45
2012 (r34158)
@@ -90,10 +90,10 @@
{ source = jailConf;
target = "fail2ban/jail.conf";
}
- { source = "${pkgs.fail2ban}/etc/fail2ban/action.d";
+ { source = "${pkgs.fail2ban}/etc/fail2ban/action.d/*.conf";
target = "fail2ban/action.d";
}
- { source = "${pkgs.fail2ban}/etc/fail2ban/filter.d";
+ { source = "${pkgs.fail2ban}/etc/fail2ban/filter.d/*.conf";
target = "fail2ban/filter.d";
}
];
Modified: nixos/trunk/modules/system/etc/make-etc.sh
==============================================================================
--- nixos/trunk/modules/system/etc/make-etc.sh Thu May 17 18:19:48 2012
(r34157)
+++ nixos/trunk/modules/system/etc/make-etc.sh Thu May 17 18:43:45 2012
(r34158)
@@ -1,23 +1,42 @@
source $stdenv/setup
-ensureDir $out/etc
+mkdir -p $out/etc
+set -f
sources_=($sources)
targets_=($targets)
modes_=($modes)
+set +f
+
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]};
+ source="${sources_[$i]}"
+ target="${targets_[$i]}"
+
+ if [[ "$source" =~ '*' ]]; then
+
+ # If the source name contains '*', perform globbing.
+ mkdir -p $out/etc/$target
+ for fn in $source; do
+ ln -s "$fn" $out/etc/$target/
+ done
+
else
- echo "Duplicate entry ${targets_[$i]} -> ${sources_[$i]}"
- if test "$(readlink $out/etc/${targets_[$i]})" != "${sources_[$i]}";
then
- echo "Mismatched duplicate entry $(readlink
$out/etc/${targets_[$i]}) <-> ${sources_[$i]}"
- exit 1
+
+ mkdir -p $out/etc/$(dirname $target)
+ if ! [ -e $out/etc/$target ]; then
+ ln -s $source $out/etc/$target
+ else
+ echo "Duplicate entry $target -> $source"
+ if test "$(readlink $out/etc/$target)" != "$source"; then
+ echo "Mismatched duplicate entry $(readlink $out/etc/$target)
<-> $source"
+ exit 1
+ fi
+ fi
+
+ if test "${modes_[$i]}" != symlink; then
+ echo "${modes_[$i]}" > $out/etc/$target.mode
fi
- fi;
- if test "${modes_[$i]}" != symlink; then
- echo "${modes_[$i]}" > $out/etc/${targets_[$i]}.mode
+
fi
done
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits