about summary refs log tree commit diff
path: root/nixos/lib/make-disk-image.nix
diff options
context:
space:
mode:
authorDan Peebles <pumpkin@me.com>2017-08-29 20:27:04 -0400
committerDan Peebles <pumpkin@me.com>2017-08-29 20:27:04 -0400
commite2589b3ca22c93029051efcde62aa773fe3085b4 (patch)
tree4a386d62a275513fbcc2806b96fc0789231f8d6c /nixos/lib/make-disk-image.nix
parentac388e9f87adfc6c6c7b2624c8d3048e0bc3bfd3 (diff)
downloadnixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.tar
nixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.tar.gz
nixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.tar.bz2
nixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.tar.lz
nixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.tar.xz
nixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.tar.zst
nixlib-e2589b3ca22c93029051efcde62aa773fe3085b4.zip
Deduplicate some filterSource invocations
This version should have more conventional regexes that work across many
platforms and regex engines. This is an issue because up until Nix 1.11,
Nix called out to the libc regex matcher, which behaved differently on
Darwin and Linux. And in Nix 1.12, we're moving to std::regex which will
also behave differently here.

And yes, I do actually evaluate make-disk-image.nix on Darwin ;)
Diffstat (limited to 'nixos/lib/make-disk-image.nix')
-rw-r--r--nixos/lib/make-disk-image.nix14
1 files changed, 1 insertions, 13 deletions
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 9c91bf392251..d4b2e338c3ef 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -45,19 +45,7 @@ let
     raw   = "img";
   };
 
-  # Copied from https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/cd-dvd/channel.nix
-  # TODO: factor out more cleanly
-
-  # Do not include these things:
-  #   - The '.git' directory
-  #   - Result symlinks from nix-build ('result', 'result-2', 'result-bin', ...)
-  #   - VIM/Emacs swap/backup files ('.swp', '.swo', '.foo.swp', 'foo~', ...)
-  filterFn = path: type: let basename = baseNameOf (toString path); in
-    if type == "directory" then basename != ".git"
-    else if type == "symlink" then builtins.match "^result(|-.*)$" basename == null
-    else builtins.match "^((|\..*)\.sw[a-z]|.*~)$" basename == null;
-
-  nixpkgs = builtins.filterSource filterFn pkgs.path;
+  nixpkgs = lib.cleanSource pkgs.path;
 
   channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} ''
     mkdir -p $out