From b95e1eb37f675b270497023b675a524017e4450c Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt <pbsds@hotmail.com> Date: Thu, 20 Mar 2025 13:48:34 +0100 Subject: [PATCH] fhs envrc --- .envrc | 18 +++++++++++------- .remoteenv | 9 ++++++++- flake.nix | 22 ++++++++++++---------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/.envrc b/.envrc index 64e10c1..39a6c78 100644 --- a/.envrc +++ b/.envrc @@ -44,14 +44,18 @@ if [[ ! -s .direnv/pull-date || "$now" != "$(cat .direnv/pull-date)" ]]; then fi # source env -if [[ ! -f .remote.toml ]]; then - use flake .#envrc-local -else - use flake .#envrc-remote - printf "\n" - just motd - printf "\n" +flake_shell=.#envrc +if [[ -f .remote.toml ]]; then + flake_shell+=-remotes fi +if [[ ! -f /run/current-system/nixos-version ]]; then + flake_shell+=-fhs +fi +use flake "$flake_shell" + +printf "\n" +just motd +printf "\n" unset -f git diff --git a/.remoteenv b/.remoteenv index 97c80b9..56147a2 100644 --- a/.remoteenv +++ b/.remoteenv @@ -1,6 +1,13 @@ #!/usr/bin/env bash export HOST_SHELL="$(command -v "$SHELL")" export IS_REMOTE_ENV=1 -eval "$(nix print-dev-env .#remoteenv)" + +flake_shell=.#remoteenv +if [[ ! -f /run/current-system/nixos-version ]]; then + flake_shell+=-fhs +fi +eval "$(nix print-dev-env "$flake_shell")" +unset flake_shell + echo Entered "$(hostname --fqdn)" df -h /nix/store diff --git a/flake.nix b/flake.nix index 034a8e8..98226d9 100644 --- a/flake.nix +++ b/flake.nix @@ -451,14 +451,14 @@ #}); devShells = forAllSystems ({ pkgs, system, ... }: let - mkShell = packages: pkgs.mkShellNoCC { inherit packages; }; - #mkShell'= packages: pkgs.mkShellNoCC { + mkShell = {...}@args: packages: pkgs.mkShellNoCC (args // { packages = (args.packages or []) ++ packages; }); + #mkShell'= {...}@args: packages: pkgs.mkShellNoCC (args // { # inherit (self.checks.${system}.pre-commit-check) shellHook; - # packages = packages ++ self.checks.${system}.pre-commit-check.enabledPackages; - #}; + # packages = (args.packages or []) ++ packages ++ self.checks.${system}.pre-commit-check.enabledPackages; + #}); + inherit (inputs-edge.system-manager-edge.packages.${system}) system-manager; envrc-pkgs = [ self.packages.${system}.nixos-rebuild-nom - inputs-edge.system-manager-edge.packages.${system}.system-manager pkgs.home-manager pkgs.nix-output-monitor pkgs.cachix @@ -469,21 +469,23 @@ pkgs.gum pkgs.mprocs ]; - in { - envrc-local = mkShell envrc-pkgs; - envrc-remote = mkShell (envrc-pkgs ++ [ + in rec { + envrc = mkShell { } envrc-pkgs; + envrc-remotes = mkShell { } (envrc-pkgs ++ [ pkgs.remote-exec pkgs.yq pkgs.rsync ]); - remoteenv = mkShell [ + remoteenv = mkShell { } [ self.packages.${system}.nixos-rebuild-nom - inputs-edge.system-manager-edge.packages.${system}.system-manager pkgs.age pkgs.ssh-to-age pkgs.just pkgs.gum ]; + envrc-fhs = mkShell { inheritFrom = [ envrc ]; } [ system-manager ]; + envrc-remotes-fhs = mkShell { inheritFrom = [ envrc-remotes ]; } [ system-manager ]; + remoteenv-fhs = mkShell { inheritFrom = [ remoteenv ]; } [ system-manager ]; }); };