Compare commits

..

2 Commits

Author SHA1 Message Date
Peder Bergebakken Sundt
31f2f445f3 justfile: fix nom use condition.
turns out just will plumb the stdout of its running processes, so we detect ttys on stderr instead
2025-05-31 20:43:16 +02:00
Peder Bergebakken Sundt
bce1f0e912 shell.nix: wrap nixos-rebuild with nix-output-monitor
\#nix-output-monitor-and-chill

nom is only used if the output is a tty, and I provide a escape hatch in the form of NIX_NO_NOM=1.
This solution sidesteps issues like `sudo nixos-rebuild ... |& nom` capturing the sudo password prompt.
2025-05-31 19:45:05 +02:00
6 changed files with 31 additions and 35 deletions

View File

@@ -1,4 +1,4 @@
{ lib, config, inputs, ... }:
{ inputs, ... }:
{
nix = {
gc = {
@@ -21,16 +21,11 @@
** use the same channel the system
** was built with
*/
registry = lib.mkMerge [
{
registry = {
"nixpkgs".flake = inputs.nixpkgs;
"nixpkgs-unstable".flake = inputs.nixpkgs-unstable;
}
# We avoid the reference to self in vmVariant to get a stable system .outPath for equivalence testing
(lib.mkIf (!config.virtualisation.isVmVariant) {
"pvv-nix".flake = inputs.self;
})
];
};
nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"unstable=${inputs.nixpkgs-unstable}"

View File

@@ -1,4 +1,4 @@
{ config, inputs, pkgs, lib, ... }:
{ inputs, pkgs, lib, ... }:
let
inputUrls = lib.mapAttrs (input: value: value.url) (import "${inputs.self}/flake.nix").inputs;
@@ -26,8 +26,7 @@ in
# workaround for https://github.com/NixOS/nix/issues/6895
# via https://git.lix.systems/lix-project/lix/issues/400
environment.etc = lib.mkIf (!config.virtualisation.isVmVariant) {
"current-system-flake-inputs.json".source
environment.etc."current-system-flake-inputs.json".source
= pkgs.writers.writeJSON "flake-inputs.json" (
lib.flip lib.mapAttrs inputs (name: input:
# inputs.*.sourceInfo sans outPath, since writeJSON will otherwise serialize sourceInfo like a derivation
@@ -35,5 +34,4 @@ in
// { store-path = input.outPath; } # comment this line if you don't want to retain a store reference to the flake inputs
)
);
};
}

View File

@@ -169,9 +169,9 @@
};
devShells = forAllSystems (system: {
default = nixpkgs-unstable.legacyPackages.${system}.callPackage ./shell.nix { };
default = nixpkgs.legacyPackages.${system}.callPackage ./shell.nix { };
cuda = let
cuda-pkgs = import nixpkgs-unstable {
cuda-pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;

View File

@@ -1,6 +1,6 @@
set positional-arguments # makes variables accesible as $1 $2 $@
export GUM_FILTER_HEIGHT := "15"
nom := `if [[ -t 1 ]] && command -v nom >/dev/null; then echo nom; else echo nix; fi`
nom := `if [[ -t 2 ]] && command -v nom >/dev/null; then echo nom; else echo nix; fi`
nix_eval_opts := "--log-format raw --option warn-dirty false"
@_default:
@@ -26,7 +26,7 @@ run-vm machine=`just _a_machine` *_:
| xargs -d'\n' nix flake update "$@"
@repl $machine=`just _a_machine` *_:
set -v; nixos-rebuild --flake .#"$machine" repl "${@:2}"
set -v; NIX_NO_NOM=1 nixos-rebuild --flake .#"$machine" repl "${@:2}"
@eval $machine=`just _a_machine` $attrpath="system.build.toplevel.outPath" *_:
set -v; nix eval {{nix_eval_opts}} ".#nixosConfigurations.\"$machine\".config.$attrpath" --show-trace "${@:3}"

View File

@@ -46,15 +46,6 @@ in {
allow 2001:700:300:1900::/64;
deny all;
'';
locations."/docs" = {
proxyPass = "http://${grg.settings.host}:${toString grg.settings.port}";
};
locations."/api" = {
proxyPass = "http://${grg.settings.host}:${toString grg.settings.port}";
proxyWebsockets = true;
};
};
"${machine}-backend.pvv.ntnu.no" = {

View File

@@ -1,6 +1,18 @@
{ pkgs ? import <nixpkgs> {} }:
let
nixos-rebuild-nom = pkgs.writeScriptBin "nixos-rebuild" ''
if [[ -t 1 && -z "''${NIX_NO_NOM-}" ]]; then
exec ${pkgs.lib.getExe pkgs.nixos-rebuild} -L "$@" |& ${pkgs.lib.getExe pkgs.nix-output-monitor}
else
exec ${pkgs.lib.getExe pkgs.nixos-rebuild} -L "$@"
fi
'';
in
pkgs.mkShellNoCC {
packages = with pkgs; [
nixos-rebuild-nom
just
jq
gum