diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index ca3bdc08a8d..ac3da119fe6 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -4,28 +4,29 @@ with pkgs.lib; let - alias = from: to: { + alias = from: to: rename { + inherit from to; name = "Alias"; - msg.use = x: x; - msg.define = x: x; + use = id; + define = id; }; - obsolete = from: to: { + obsolete = from: to: rename { + inherit from to; name = "Obsolete name"; - msg.use = x: - builtins.trace "Obsolete option `${from}' is used instead of `${to}'." x; - msg.define = x: - builtins.trace "Obsolete option `${from}' is defined instead of `${to}'." x; + use = x: builtins.trace "Obsolete option ${showOption from} is used instead of ${showOption to}." x; + define = x: builtins.trace "Obsolete option ${showOption from} is defined instead of ${showOption to}." x; }; - deprecated = from: to: { + deprecated = from: to: rename { + inherit from to; name = "Deprecated name"; - msg.use = x: - abort "Deprecated option `${from}' is used instead of `${to}'."; - msg.define = x: - abort "Deprecated option `${from}' is defined instead of `${to}'."; + use = x: abort "Deprecated option ${showOption from} is used instead of ${showOption to}."; + define = x: abort "Deprecated option ${showOption from} is defined instead of ${showOption to}."; }; + showOption = name: "`${concatStringsSep "." name}'"; + zipModules = list: zipAttrsWith (n: v: if tail v != [] then @@ -38,19 +39,17 @@ let else head v ) list; - rename = statusTemplate: from: to: + rename = { from, to, name, use, define }: let - status = statusTemplate from to; - setTo = setAttrByPath (splitString "." to); - setFrom = setAttrByPath (splitString "." from); - toOf = attrByPath (splitString "." to) - (abort "Renaming error: option `${to}' does not exists."); - fromOf = attrByPath (splitString "." from) - (abort "Internal error: option `${from}' should be declared."); + setTo = setAttrByPath to; + setFrom = setAttrByPath from; + toOf = attrByPath to + (abort "Renaming error: option ${showOption to} does not exists."); + fromOf = attrByPath from + (abort "Internal error: option ${showOption from} should be declared."); in [ { options = setFrom (mkOption { - description = "${status.name} of ."; - apply = x: status.msg.use (toOf config); + apply = x: use (toOf config); visible = false; }); } @@ -58,68 +57,68 @@ let extraConfigs = let externalDefs = (fromOf options).definitions; in if externalDefs == [] then [] - else map (def: def.value) (status.msg.define externalDefs); + else map (def: def.value) (define externalDefs); }); } ]; - obsolete' = option: let option' = splitString "." option; in singleton - { options = setAttrByPath option' (mkOption { + obsolete' = option: singleton + { options = setAttrByPath option (mkOption { default = null; visible = false; }); - config.warnings = optional (getAttrFromPath option' config != null) - "The option `${option}' set in your configuration no longer has any effect; please remove it."; + config.warnings = optional (getAttrFromPath option config != null) + "The option ${showOption option} defined in your configuration no longer has any effect; please remove it."; }; in zipModules ([] # usage example: -# ++ rename alias "services.xserver.slim.theme" "services.xserver.displayManager.slim.theme" -++ rename obsolete "environment.extraPackages" "environment.systemPackages" -++ rename obsolete "environment.enableBashCompletion" "programs.bash.enableCompletion" +# ++ alias [ "services" "xserver" "slim" "theme" ] [ "services" "xserver" "displayManager" "slim" "theme" ] +++ obsolete [ "environment" "extraPackages" ] [ "environment" "systemPackages" ] +++ obsolete [ "environment" "enableBashCompletion" ] [ "programs" "bash" "enableCompletion" ] -++ rename obsolete "security.extraSetuidPrograms" "security.setuidPrograms" -++ rename obsolete "networking.enableWLAN" "networking.wireless.enable" -++ rename obsolete "networking.enableRT73Firmware" "networking.enableRalinkFirmware" +++ obsolete [ "security" "extraSetuidPrograms" ] [ "security" "setuidPrograms" ] +++ obsolete [ "networking" "enableWLAN" ] [ "networking" "wireless" "enable" ] +++ obsolete [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ] # FIXME: Remove these eventually. -++ rename obsolete "boot.systemd.sockets" "systemd.sockets" -++ rename obsolete "boot.systemd.targets" "systemd.targets" -++ rename obsolete "boot.systemd.services" "systemd.services" +++ obsolete [ "boot" "systemd" "sockets" ] [ "systemd" "sockets" ] +++ obsolete [ "boot" "systemd" "targets" ] [ "systemd" "targets" ] +++ obsolete [ "boot" "systemd" "services" ] [ "systemd" "services" ] # Old Grub-related options. -++ rename obsolete "boot.copyKernels" "boot.loader.grub.copyKernels" -++ rename obsolete "boot.extraGrubEntries" "boot.loader.grub.extraEntries" -++ rename obsolete "boot.extraGrubEntriesBeforeNixos" "boot.loader.grub.extraEntriesBeforeNixOS" -++ rename obsolete "boot.grubDevice" "boot.loader.grub.device" -++ rename obsolete "boot.bootMount" "boot.loader.grub.bootDevice" -++ rename obsolete "boot.grubSplashImage" "boot.loader.grub.splashImage" +++ obsolete [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ] +++ obsolete [ "boot" "extraGrubEntries" ] [ "boot" "loader" "grub" "extraEntries" ] +++ obsolete [ "boot" "extraGrubEntriesBeforeNixos" ] [ "boot" "loader" "grub" "extraEntriesBeforeNixOS" ] +++ obsolete [ "boot" "grubDevice" ] [ "boot" "loader" "grub" "device" ] +++ obsolete [ "boot" "bootMount" ] [ "boot" "loader" "grub" "bootDevice" ] +++ obsolete [ "boot" "grubSplashImage" ] [ "boot" "loader" "grub" "splashImage" ] -++ rename obsolete "boot.initrd.extraKernelModules" "boot.initrd.kernelModules" +++ obsolete [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ] # OpenSSH -++ rename obsolete "services.sshd.ports" "services.openssh.ports" -++ rename alias "services.sshd.enable" "services.openssh.enable" -++ rename obsolete "services.sshd.allowSFTP" "services.openssh.allowSFTP" -++ rename obsolete "services.sshd.forwardX11" "services.openssh.forwardX11" -++ rename obsolete "services.sshd.gatewayPorts" "services.openssh.gatewayPorts" -++ rename obsolete "services.sshd.permitRootLogin" "services.openssh.permitRootLogin" -++ rename obsolete "services.xserver.startSSHAgent" "services.xserver.startOpenSSHAgent" +++ obsolete [ "services" "sshd" "ports" ] [ "services" "openssh" "ports" ] +++ alias [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ] +++ obsolete [ "services" "sshd" "allowSFTP" ] [ "services" "openssh" "allowSFTP" ] +++ obsolete [ "services" "sshd" "forwardX11" ] [ "services" "openssh" "forwardX11" ] +++ obsolete [ "services" "sshd" "gatewayPorts" ] [ "services" "openssh" "gatewayPorts" ] +++ obsolete [ "services" "sshd" "permitRootLogin" ] [ "services" "openssh" "permitRootLogin" ] +++ obsolete [ "services" "xserver" "startSSHAgent" ] [ "services" "xserver" "startOpenSSHAgent" ] # KDE -++ rename deprecated "kde.extraPackages" "environment.kdePackages" -# ++ rename obsolete "environment.kdePackages" "environment.systemPackages" # !!! doesn't work! +++ deprecated [ "kde" "extraPackages" ] [ "environment" "kdePackages" ] +# ++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ] # !!! doesn't work! # Multiple efi bootloaders now -++ rename obsolete "boot.loader.efi.efibootmgr.enable" "boot.loader.efi.canTouchEfiVariables" +++ obsolete [ "boot" "loader" "efi" "efibootmgr" "enable" ] [ "boot" "loader" "efi" "canTouchEfiVariables" ] # NixOS environment changes # !!! this hardcodes bash, could we detect from config which shell is actually used? -++ rename obsolete "environment.promptInit" "programs.bash.promptInit" +++ obsolete [ "environment" "promptInit" ] [ "programs" "bash" "promptInit" ] # Options that are obsolete and have no replacement. -++ obsolete' "boot.loader.grub.bootDevice" -++ obsolete' "boot.initrd.luks.enable" +++ obsolete' [ "boot" "loader" "grub" "bootDevice" ] +++ obsolete' [ "boot" "initrd" "luks" "enable" ] -) # do not add renaming after this. +)