From 83d3356e5c0becc6b7ab0429b4fe6a5f3d2dbb6b Mon Sep 17 00:00:00 2001 From: K900 Date: Mon, 2 Oct 2023 09:10:45 +0300 Subject: feat: add welcome message Direct people to upgrade their systems first and link to support channels just in case. --- flake.nix | 82 ++++++++++++++++++++++++++++------------------------- modules/default.nix | 1 + modules/welcome.nix | 22 ++++++++++++++ 3 files changed, 67 insertions(+), 38 deletions(-) create mode 100644 modules/welcome.nix diff --git a/flake.nix b/flake.nix index 931f1e9..8e08f47 100644 --- a/flake.nix +++ b/flake.nix @@ -26,49 +26,55 @@ }; nixosModules.default = self.nixosModules.wsl; - nixosConfigurations = { - modern = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - self.nixosModules.default - { wsl.enable = true; } - ]; - }; + nixosConfigurations = + let + initialConfig = { + wsl.enable = true; - legacy = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - self.nixosModules.default - { - wsl.enable = true; - wsl.nativeSystemd = false; - } - ]; - }; + programs.bash.loginShellInit = "nixos-wsl-welcome"; + }; + in + { + modern = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + self.nixosModules.default + initialConfig + ]; + }; + + legacy = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + self.nixosModules.default + initialConfig + { wsl.nativeSystemd = false; } + ]; + }; - test = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - self.nixosModules.default - ({ config, pkgs, ... }: { - wsl.enable = true; - wsl.nativeSystemd = false; + test = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + self.nixosModules.default + ({ config, pkgs, ... }: { + wsl.enable = true; + wsl.nativeSystemd = false; - system.activationScripts.create-test-entrypoint.text = - let - syschdemdProxy = pkgs.writeShellScript "syschdemd-proxy" '' - shell=$(${pkgs.glibc.bin}/bin/getent passwd root | ${pkgs.coreutils}/bin/cut -d: -f7) - exec $shell $@ + system.activationScripts.create-test-entrypoint.text = + let + syschdemdProxy = pkgs.writeShellScript "syschdemd-proxy" '' + shell=$(${pkgs.glibc.bin}/bin/getent passwd root | ${pkgs.coreutils}/bin/cut -d: -f7) + exec $shell $@ + ''; + in + '' + mkdir -p /bin + ln -sfn ${syschdemdProxy} /bin/syschdemd ''; - in - '' - mkdir -p /bin - ln -sfn ${syschdemdProxy} /bin/syschdemd - ''; - }) - ]; + }) + ]; + }; }; - }; } // flake-utils.lib.eachSystem diff --git a/modules/default.nix b/modules/default.nix index 08a612a..c2f9a38 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -6,6 +6,7 @@ ./recovery.nix ./systemd ./version.nix + ./welcome.nix ./wsl-conf.nix ./wsl-distro.nix diff --git a/modules/welcome.nix b/modules/welcome.nix new file mode 100644 index 0000000..30b2466 --- /dev/null +++ b/modules/welcome.nix @@ -0,0 +1,22 @@ +{ lib, pkgs, config, ... }: +let + welcomeMessage = pkgs.writeText "nixos-wsl-welcome-message" '' + Welcome to your new NixOS-WSL system! + + Please run `sudo nix-channel --update` and `sudo nixos-rebuild switch` now, to ensure you're running the latest NixOS and NixOS-WSL versions. + + If you run into issues, please report them on our Github page at https://github.com/nix-community/NixOS-WSL or come talk to us on Matrix at #wsl:nixos.org. + + ❄️ Enjoy NixOS-WSL! ❄️ + + Note: this message will disappear after you rebuild your system. If you want to see it again, run `nixos-wsl-welcome`. + ''; + welcome = pkgs.writeShellScriptBin "nixos-wsl-welcome" '' + cat ${welcomeMessage} + ''; +in +{ + config = lib.mkIf config.wsl.enable { + environment.systemPackages = [ welcome ]; + }; +} -- cgit v1.2.3