Loading nixos/modules/services/misc/angrr.nix +24 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ let cfg = config.services.angrr; direnvCfg = config.programs.direnv.angrr; in { meta.maintainers = pkgs.angrr.meta.maintainers; Loading Loading @@ -77,6 +78,20 @@ in }; }; }; programs.direnv.angrr = { enable = lib.mkEnableOption "angrr direnv integration" // { default = true; example = false; }; autoUse = lib.mkOption { type = lib.types.bool; default = true; example = false; description = '' Whether to automatically use angrr before loading .envrc. ''; }; }; }; config = lib.mkIf cfg.enable ( Loading Loading @@ -106,6 +121,8 @@ in Type = "oneshot"; }; }; environment.systemPackages = [ cfg.package ]; } (lib.mkIf cfg.timer.enable { Loading @@ -123,6 +140,13 @@ in before = [ "nix-gc.service" ]; }; }) (lib.mkIf (config.programs.direnv.enable && direnvCfg.enable) { environment.etc."direnv/lib/angrr.sh".source = "${cfg.package}/share/direnv/lib/angrr.sh"; programs.direnv.direnvrcExtra = lib.mkIf direnvCfg.autoUse '' use angrr ''; }) ] ); } nixos/tests/angrr.nix +25 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,11 @@ # For `nix build /run/current-system --out-link`, # `nix-build` does not support this use case. nix.settings.experimental-features = [ "nix-command" ]; # Test direnv integration programs.direnv.enable = true; # Verbose logging for angrr in direnv environment.variables.ANGRR_DIRENV_LOG = "angrr=debug"; }; }; Loading Loading @@ -59,5 +64,25 @@ # All auto GC roots are removed machine.succeed("test ! -f /tmp/root-auto-gc-root-2") machine.succeed("test ! -f /tmp/user-auto-gc-root-2") # Direnv integration test machine.succeed("mkdir /tmp/test-direnv") machine.succeed("echo >/tmp/test-direnv/.envrc") # Simply create an empty .envrc machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/.direnv/gc-root") machine.succeed("cd /tmp/test-direnv; direnv allow; direnv exec . true") # The root will be removed if we does not use the direnv recently machine.succeed("date -s '8 days'") machine.systemctl("start nix-gc.service") machine.succeed("test ! -f /tmp/test-direnv/.direnv/gc-root") # Recreate the root machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/.direnv/gc-root") # The root will not be remove if we use the direnv recently machine.succeed("date -s '8 days'") machine.succeed("cd /tmp/test-direnv; direnv exec . true") machine.systemctl("start nix-gc.service") machine.succeed("readlink /tmp/test-direnv/.direnv/gc-root") ''; } pkgs/by-name/an/angrr/package.nix +7 −4 Original line number Diff line number Diff line Loading @@ -11,19 +11,22 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "angrr"; version = "0.1.1"; version = "0.1.3"; src = fetchFromGitHub { owner = "linyinfeng"; repo = "angrr"; tag = "v${finalAttrs.version}"; hash = "sha256-SL4UBDoD0pvpCKokQvKLAcS9cQJaFiA+IjswFARswdM="; hash = "sha256-pBVbzrTy/IWIo6WlhM1qgowfxSU31awyHcRDHNArBMo="; }; cargoHash = "sha256-lo9JpsHkvyrEqFnIiGlU2o4rREeQeqWpe9WMwisvw+4="; cargoHash = "sha256-DoQIJCs36ZmTxdsDCzquKAeOSIUBbo2V+DTx68FZiu4="; nativeBuildInputs = [ installShellFiles ]; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' postInstall = '' install -m400 -D ./direnv/angrr.sh $out/share/direnv/lib/angrr.sh '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd angrr \ --bash <($out/bin/angrr completion bash) \ --fish <($out/bin/angrr completion fish) \ Loading Loading
nixos/modules/services/misc/angrr.nix +24 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ let cfg = config.services.angrr; direnvCfg = config.programs.direnv.angrr; in { meta.maintainers = pkgs.angrr.meta.maintainers; Loading Loading @@ -77,6 +78,20 @@ in }; }; }; programs.direnv.angrr = { enable = lib.mkEnableOption "angrr direnv integration" // { default = true; example = false; }; autoUse = lib.mkOption { type = lib.types.bool; default = true; example = false; description = '' Whether to automatically use angrr before loading .envrc. ''; }; }; }; config = lib.mkIf cfg.enable ( Loading Loading @@ -106,6 +121,8 @@ in Type = "oneshot"; }; }; environment.systemPackages = [ cfg.package ]; } (lib.mkIf cfg.timer.enable { Loading @@ -123,6 +140,13 @@ in before = [ "nix-gc.service" ]; }; }) (lib.mkIf (config.programs.direnv.enable && direnvCfg.enable) { environment.etc."direnv/lib/angrr.sh".source = "${cfg.package}/share/direnv/lib/angrr.sh"; programs.direnv.direnvrcExtra = lib.mkIf direnvCfg.autoUse '' use angrr ''; }) ] ); }
nixos/tests/angrr.nix +25 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,11 @@ # For `nix build /run/current-system --out-link`, # `nix-build` does not support this use case. nix.settings.experimental-features = [ "nix-command" ]; # Test direnv integration programs.direnv.enable = true; # Verbose logging for angrr in direnv environment.variables.ANGRR_DIRENV_LOG = "angrr=debug"; }; }; Loading Loading @@ -59,5 +64,25 @@ # All auto GC roots are removed machine.succeed("test ! -f /tmp/root-auto-gc-root-2") machine.succeed("test ! -f /tmp/user-auto-gc-root-2") # Direnv integration test machine.succeed("mkdir /tmp/test-direnv") machine.succeed("echo >/tmp/test-direnv/.envrc") # Simply create an empty .envrc machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/.direnv/gc-root") machine.succeed("cd /tmp/test-direnv; direnv allow; direnv exec . true") # The root will be removed if we does not use the direnv recently machine.succeed("date -s '8 days'") machine.systemctl("start nix-gc.service") machine.succeed("test ! -f /tmp/test-direnv/.direnv/gc-root") # Recreate the root machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/.direnv/gc-root") # The root will not be remove if we use the direnv recently machine.succeed("date -s '8 days'") machine.succeed("cd /tmp/test-direnv; direnv exec . true") machine.systemctl("start nix-gc.service") machine.succeed("readlink /tmp/test-direnv/.direnv/gc-root") ''; }
pkgs/by-name/an/angrr/package.nix +7 −4 Original line number Diff line number Diff line Loading @@ -11,19 +11,22 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "angrr"; version = "0.1.1"; version = "0.1.3"; src = fetchFromGitHub { owner = "linyinfeng"; repo = "angrr"; tag = "v${finalAttrs.version}"; hash = "sha256-SL4UBDoD0pvpCKokQvKLAcS9cQJaFiA+IjswFARswdM="; hash = "sha256-pBVbzrTy/IWIo6WlhM1qgowfxSU31awyHcRDHNArBMo="; }; cargoHash = "sha256-lo9JpsHkvyrEqFnIiGlU2o4rREeQeqWpe9WMwisvw+4="; cargoHash = "sha256-DoQIJCs36ZmTxdsDCzquKAeOSIUBbo2V+DTx68FZiu4="; nativeBuildInputs = [ installShellFiles ]; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' postInstall = '' install -m400 -D ./direnv/angrr.sh $out/share/direnv/lib/angrr.sh '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd angrr \ --bash <($out/bin/angrr completion bash) \ --fish <($out/bin/angrr completion fish) \ Loading