diff --git a/default.nix b/default.nix index 89fc1035..734529c7 100644 --- a/default.nix +++ b/default.nix @@ -31,6 +31,7 @@ let ./modules/system/etc.nix ./modules/system/launchd.nix ./modules/time + ./modules/networking ./modules/nix ./modules/nix/nix-darwin.nix ./modules/nix/nixpkgs.nix diff --git a/modules/networking/default.nix b/modules/networking/default.nix new file mode 100644 index 00000000..634618e1 --- /dev/null +++ b/modules/networking/default.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.networking; + + hostName = optionalString (cfg.hostName != null) '' + scutil --set ComputerName "${cfg.hostName}" + scutil --set LocalHostName "${cfg.hostName}" + scutil --set HostName "${cfg.hostName}" + ''; + +in + +{ + options = { + + networking.hostName = mkOption { + type = types.nullOr types.str; + default = null; + example = "myhostname"; + description = '' + Hostname for your machine. + ''; + }; + + }; + + config = { + + system.activationScripts.networking.text = '' + # Set defaults + echo "configuring networking..." >&2 + + ${hostName} + ''; + + }; +} diff --git a/modules/system/activation-scripts.nix b/modules/system/activation-scripts.nix index 301c612c..aa97633c 100644 --- a/modules/system/activation-scripts.nix +++ b/modules/system/activation-scripts.nix @@ -60,6 +60,7 @@ in ${cfg.activationScripts.etc.text} ${cfg.activationScripts.launchd.text} ${cfg.activationScripts.time.text} + ${cfg.activationScripts.networking.text} # Make this configuration the current configuration. # The readlink is there to ensure that when $systemConfig = /system