diff --git a/modules/misc/specialisation.nix b/modules/misc/specialisation.nix index dc5f78e14..01e889426 100644 --- a/modules/misc/specialisation.nix +++ b/modules/misc/specialisation.nix @@ -71,10 +71,16 @@ with lib; }; config = mkIf (config.specialisation != { }) { + assertions = map (n: { + assertion = !lib.hasInfix "/" n; + message = + " in specialisation. cannot contain a forward slash."; + }) (attrNames config.specialisation); + home.extraBuilderCommands = let link = n: v: let pkg = v.configuration.home.activationPackage; - in "ln -s ${pkg} $out/specialisation/${n}"; + in "ln -s ${pkg} $out/specialisation/${escapeShellArg n}"; in '' mkdir $out/specialisation ${concatStringsSep "\n" (mapAttrsToList link config.specialisation)}