diff --git a/othalan-current b/othalan-current new file mode 120000 index 0000000..1927a71 --- /dev/null +++ b/othalan-current @@ -0,0 +1 @@ +/nix/store/pznxacprsq9gspmiavldyg1qfyppmqw4-nixos-system-othalan-25.05.20241118.5083ec8 \ No newline at end of file diff --git a/othalan-updated b/othalan-updated new file mode 120000 index 0000000..927fe81 --- /dev/null +++ b/othalan-updated @@ -0,0 +1 @@ +/nix/store/qx76kywiz9v85yxck9y64878v0an9q15-nixos-system-othalan-25.05.20241118.5083ec8 \ No newline at end of file diff --git a/pkgs/oizys/src/oizys.nim b/pkgs/oizys/src/oizys.nim index f0e39f5..083feca 100644 --- a/pkgs/oizys/src/oizys.nim +++ b/pkgs/oizys/src/oizys.nim @@ -37,7 +37,6 @@ hwylCli: updateContext(host, flake, debug, resetCache) subcommands: - [build] ... "nix build" flags: @@ -65,8 +64,24 @@ hwylCli: nixBuildWithCache(name, args, service, jobs) [ci] + ... "builtin ci" + # current behavior adds this block twice... + # when really I want it to only happen in the lowest "subcommand" + # needs to be fixed in hwylterm + preSub: + setupLoggers(debug) + updateContext(host, flake, debug, resetCache) + subcommands: + [update] + ... "build current and updated hosts" + run: + ciUpdate(args) + + [gha] ... "trigger GHA" flags: + # make a key/value input that is passed to workflows and encoded in json + # i.e. --input:ref:main `ref`: T string ? "git ref/branch/tag to trigger workflow on" diff --git a/pkgs/oizys/src/oizys/context.nim b/pkgs/oizys/src/oizys/context.nim index 1fb6d66..000ae5e 100644 --- a/pkgs/oizys/src/oizys/context.nim +++ b/pkgs/oizys/src/oizys/context.nim @@ -49,5 +49,3 @@ proc getFlake*(): string = return oc.flake proc isDebug*(): bool = return oc.debug proc isResetCache*(): bool = return oc.resetCache proc isCi*(): bool = return oc.ci - - diff --git a/pkgs/oizys/src/oizys/exec.nim b/pkgs/oizys/src/oizys/exec.nim index 05b6cbf..cc12003 100644 --- a/pkgs/oizys/src/oizys/exec.nim +++ b/pkgs/oizys/src/oizys/exec.nim @@ -47,7 +47,10 @@ proc runCmdCapt*( if errstrm.readLine(line): result.stderr.add line & '\n' result.exitCode = peekExitCode(p) - if result.exitCode != -1: break + if result.exitCode != -1: + result.stdout.add outstrm.readAll() + result.stderr.add errstrm.readAll() + break close p diff --git a/pkgs/oizys/src/oizys/logging.nim b/pkgs/oizys/src/oizys/logging.nim index 40cf4f3..53fd504 100644 --- a/pkgs/oizys/src/oizys/logging.nim +++ b/pkgs/oizys/src/oizys/logging.nim @@ -23,7 +23,6 @@ proc getOizysLogPath(): string = createDir(dataDir / "oizys") result = dataDir / "oizys" / "oizys.log" - setLogFilter(lvlAll) proc setupLoggers*(debug: bool) = diff --git a/pkgs/oizys/src/oizys/nix.nim b/pkgs/oizys/src/oizys/nix.nim index 02b3ed7..1219116 100644 --- a/pkgs/oizys/src/oizys/nix.nim +++ b/pkgs/oizys/src/oizys/nix.nim @@ -14,9 +14,12 @@ proc nixCommand(cmd: string): string = result.addArg "--log-format multiline" result.addArg cmd +proc nixosConfigAttr(host: string): string = + getFlake() & "#nixosConfigurations." & host & ".config.system.build.toplevel" + proc nixosConfigAttrs*(): seq[string] = for host in getHosts(): - result.add getFlake() & "#nixosConfigurations." & host & ".config.system.build.toplevel" + result.add nixosConfigAttr(host) const nixosSubcmds* = """switch boot test build dry-build dry-activate edit @@ -348,3 +351,84 @@ proc nixBuildWithCache*(name: string, rest:seq[string], service: string, jobs: i if pushErr != 0: errorQuit "failed to push build to cache" +#[ + - name: Build + run: > + nix run . + -- + build + "$(nix run . -- output --host,=othalan,algiz,mannaz,naudiz --flake .)" + --flake . + --debug + -- + --keep-going + --no-link + + - run: git show origin/flake-lock:flake.lock > updated.lock + + - name: Pre-build oizys + run: nix build . --reference-lock-file updated.lock + + - name: Build Updated + run: > + nix run . + -- + build + "$(nix run . -- output --host,=othalan,algiz,mannaz,naudiz --flake .)" + --flake . + --debug + -- + --keep-going + --no-link + --reference-lock-file updated.lock + + - run: | + for host in othalan algiz mannaz naudiz; do + for rev in current updated; do + args="\"$(nix run . -- output --host $host)\" --out-link \"${host}-${rev}\"" + [[ "$rev" == "updated" ]] && args="$args --reference-lock-file updated.lock" + nix build $args + done + done +]# + + +proc getUpdatedLockFile() = + info "getting updated flake.lock as updated.lock" + let res = runCmdCapt("git --no-pager show origin/flake-lock:flake.lock") + if res.exitCode != 0: + fatalQuit "failed to fetch updated lock file using git" + writeFile("updated.lock", res.stdout) + +proc ciUpdate*(rest: seq[string]) = + # TODO: deduplicated logic in this proc + for host in getHosts(): + info "building " & host.bb("bold") + var cmd = nixCommand("build") + cmd.addArg nixosConfigAttr(host) + # TODO: how to get the out link? + cmd.addArgs ["--out-link", host & "-current"] + cmd.addArg "--quiet" + cmd.addArgs rest + let code = runCmd cmd + if code != 0: + # TODO: nix log "attr"? + discard runCmd("nix log " & nixosConfigAttr(host)) + fatalQuit "build failed" + + getUpdatedLockFile() + + for host in getHosts(): + info "building updated " & host.bb("bold") + var cmd = nixCommand("build") + cmd.addArg nixosConfigAttr(host) + cmd.addArgs ["--out-link", host & "-updated"] + cmd.addArg "--quiet" + cmd.addArgs ["--reference-lock-file", "updated.lock"] + cmd.addArgs rest + let code = runCmd cmd + if code != 0: + # TODO: nix log "attr"? + discard runCmd("nix log " & nixosConfigAttr(host)) + fatalQuit "build failed" + diff --git a/updated.lock b/updated.lock new file mode 100644 index 0000000..ef4149b --- /dev/null +++ b/updated.lock @@ -0,0 +1,1165 @@ +{ + "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1731774881, + "narHash": "sha256-1Dxryiw8u2ejntxrrv3sMtIE8WHKxmlN4KeH+uMGbmc=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "b31a6a4da8199ae3489057db7d36069a70749a56", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "comin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731534082, + "narHash": "sha256-n8yVzBixxaj0Qn6SV655t6QUtKSOJ+sR4AEoq0Vqb/0=", + "owner": "nlewo", + "repo": "comin", + "rev": "9afca855518f79b5bff3d2a9663b2e6f81dd361a", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "comin", + "type": "github" + } + }, + "f1multiviewer": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730642645, + "narHash": "sha256-enJml5i2n0pDJ9kVeAylEQKp9fzdXDO45iAm39SqDwM=", + "owner": "daylinmorgan", + "repo": "f1multiviewer-flake", + "rev": "c85627a67eeb3e606f1df6b7747dfae6537f79f9", + "type": "github" + }, + "original": { + "owner": "daylinmorgan", + "repo": "f1multiviewer-flake", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "locked": { + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixpkgs-wayland", + "nix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flakey-profile": { + "locked": { + "lastModified": 1712898590, + "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", + "owner": "lf-", + "repo": "flakey-profile", + "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", + "type": "github" + }, + "original": { + "owner": "lf-", + "repo": "flakey-profile", + "type": "github" + } + }, + "ghostty": { + "inputs": { + "nixpkgs-stable": [ + "nixpkgs" + ], + "nixpkgs-unstable": [ + "nixpkgs" + ], + "zig": "zig" + }, + "locked": { + "lastModified": 1731971697, + "narHash": "sha256-6JNMcpy0z19yOLBRt3eE4Rk4A96kcEsRv5+ym1hkv1c=", + "ref": "refs/heads/main", + "rev": "29c3a52e964a97dddaed876ce472aeb167774acf", + "revCount": 8021, + "type": "git", + "url": "ssh://git@github.com/ghostty-org/ghostty" + }, + "original": { + "type": "git", + "url": "ssh://git@github.com/ghostty-org/ghostty" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728669738, + "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_2", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1731978971, + "narHash": "sha256-P9DXCxDvjFt4aMc2x67hvSpNvSqX18X840w6cEVZXoo=", + "ref": "refs/heads/main", + "rev": "67cee430061626ccd73dc6d30eed9db289053608", + "revCount": 5480, + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/Hyprland/" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/Hyprland/" + } + }, + "hyprland-contrib": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1730743354, + "narHash": "sha256-gU4NySYyXeAzVaF5bI6BKmj2CdgiwGFnuPjXUId3Dx0=", + "owner": "hyprwm", + "repo": "contrib", + "rev": "792f6b83dc719214e0e2a0b380c34f147b28ece2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "contrib", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728345020, + "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "a7c183800e74f337753de186522b9017a07a8cee", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728168612, + "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprman": { + "inputs": { + "nim2nix": "nim2nix", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731684150, + "narHash": "sha256-jY0bRx2SWuLU02nwDE8Q5bPuMMSiUISJYaH4GWfUFc4=", + "ref": "refs/heads/main", + "rev": "888c8e4c9395e7abfcbfc044d575ff6cf955672a", + "revCount": 21, + "type": "git", + "url": "https://git.dayl.in/daylin/hyprman.git" + }, + "original": { + "type": "git", + "url": "https://git.dayl.in/daylin/hyprman.git" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1731702627, + "narHash": "sha256-+JeO9gevnXannQxMfR5xzZtF4sYmSlWkX/BPmPx0mWk=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "e911361a687753bbbdfe3b6a9eab755ecaf1d9e1", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1726874836, + "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "lib-aggregate": { + "inputs": { + "flake-utils": "flake-utils_4", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1731845570, + "narHash": "sha256-5reOtlm18XLnh3ezruPOg2wQO+MB7ztsFaIzSUAzeh8=", + "owner": "nix-community", + "repo": "lib-aggregate", + "rev": "7a1d37b2b16f32536628df9cea6a2003d79a49f9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lib-aggregate", + "type": "github" + } + }, + "lix": { + "flake": false, + "locked": { + "lastModified": 1731992627, + "narHash": "sha256-OjrXEVD8LtZB5X7LtPCdNx4n5iZOQ2nJmpDlM/foEkI=", + "rev": "f116608a20430b8484814300cdf22eebeb75a59f", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f116608a20430b8484814300cdf22eebeb75a59f.tar.gz?rev=f116608a20430b8484814300cdf22eebeb75a59f" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" + } + }, + "lix-module": { + "inputs": { + "flake-utils": "flake-utils_2", + "flakey-profile": "flakey-profile", + "lix": [ + "lix" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731967274, + "narHash": "sha256-n6dPGRlMGdL8X5gviA6ZuRfUdbdD5KiNN/BpABA5YT0=", + "rev": "aa2846680fa9a2032939d720487942567fd9eb63", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/aa2846680fa9a2032939d720487942567fd9eb63.tar.gz?rev=aa2846680fa9a2032939d720487942567fd9eb63" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" + } + }, + "my-nixpkgs": { + "locked": { + "lastModified": 1714076141, + "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", + "owner": "daylinmorgan", + "repo": "nixpkgs", + "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", + "type": "github" + }, + "original": { + "owner": "daylinmorgan", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nim2nix": { + "inputs": { + "nixpkgs": [ + "hyprman", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731683943, + "narHash": "sha256-S7J/6qnwvj09XSma37oynLONYP+rJAul/sX9hpK7cN4=", + "owner": "daylinmorgan", + "repo": "nim2nix", + "rev": "a9f1182dbe51675b9666d6a79bebded7d9839ad7", + "type": "github" + }, + "original": { + "owner": "daylinmorgan", + "repo": "nim2nix", + "type": "github" + } + }, + "nim2nix_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731683943, + "narHash": "sha256-S7J/6qnwvj09XSma37oynLONYP+rJAul/sX9hpK7cN4=", + "owner": "daylinmorgan", + "repo": "nim2nix", + "rev": "a9f1182dbe51675b9666d6a79bebded7d9839ad7", + "type": "github" + }, + "original": { + "owner": "daylinmorgan", + "repo": "nim2nix", + "type": "github" + } + }, + "nim2nix_3": { + "inputs": { + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1725469705, + "narHash": "sha256-4/iSUwB3XKmybdt4R87VhBPiD3z4BL6RrD9LyrrkesM=", + "owner": "daylinmorgan", + "repo": "nim2nix", + "rev": "42af12ca45025c7146bc24e27f5d8b65b003d663", + "type": "github" + }, + "original": { + "owner": "daylinmorgan", + "repo": "nim2nix", + "type": "github" + } + }, + "nix-eval-jobs": { + "inputs": { + "flake-parts": "flake-parts", + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs_5", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1731682758, + "narHash": "sha256-o54e8oNPPNmU7zHm3uTvsbbQLi7EKX3S6EEndXFG594=", + "owner": "nix-community", + "repo": "nix-eval-jobs", + "rev": "d926bcd5206c0b7afe47bed92557c8cd5e882b36", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-eval-jobs", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "nixpkgs-wayland", + "nix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720066371, + "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731814505, + "narHash": "sha256-l9ryrx1Twh08a+gxrMGM9O/aZKEimZfa6sZVyPCImgI=", + "owner": "nix-community", + "repo": "nix-index-database", + "rev": "bdba246946fb079b87b4cada4df9b1cdf1c06132", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-index-database", + "type": "github" + } + }, + "nixos-wsl": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1731682434, + "narHash": "sha256-HnZFPB7akVIy0KuPq/tEkiB+Brt1qi0DUIDzR8z25qI=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "a6b9cf0b7805e2c50829020a73e7bde683fd36dd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NixOS-WSL", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1731676054, + "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1731805462, + "narHash": "sha256-yhEMW4MBi+IAyEJyiKbnFvY1uARyMKJpLUhkczI49wk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "b9f04e3cf71c23bea21d2768051e6b3068d44734", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-wayland": { + "inputs": { + "flake-compat": "flake-compat_3", + "lib-aggregate": "lib-aggregate", + "nix-eval-jobs": "nix-eval-jobs", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1732026056, + "narHash": "sha256-ZXYNxTYD3uWtWrU/SMH43w1QRygDSoX1KEMhpwRrB5Y=", + "owner": "nix-community", + "repo": "nixpkgs-wayland", + "rev": "5181aa924e9e322d2dcb610ec73d8bae73c1286d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs-wayland", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1712163089, + "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1729973466, + "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1731890469, + "narHash": "sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5083ec887760adfe12af64830a66807423a859a7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1730958623, + "narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "85f7e662eda4fa3a995556527c87b2524b691933", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1731676054, + "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1724479785, + "narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1725103162, + "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pixi": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731609704, + "narHash": "sha256-HSOQ5VyzXOfKLlwSg1pelbwf9hwj89V7rZMbv9ldA1E=", + "owner": "daylinmorgan", + "repo": "pixi-flake", + "rev": "e11d879dabad54ec0ef0218b48cea7f630fada78", + "type": "github" + }, + "original": { + "owner": "daylinmorgan", + "repo": "pixi-flake", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "comin": "comin", + "f1multiviewer": "f1multiviewer", + "ghostty": "ghostty", + "hyprland": "hyprland", + "hyprland-contrib": "hyprland-contrib", + "hyprman": "hyprman", + "lix": "lix", + "lix-module": "lix-module", + "my-nixpkgs": "my-nixpkgs", + "nim2nix": "nim2nix_2", + "nix-index-database": "nix-index-database", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_4", + "nixpkgs-wayland": "nixpkgs-wayland", + "pixi": "pixi", + "stable": "stable", + "tsm": "tsm", + "utils": "utils" + } + }, + "stable": { + "locked": { + "lastModified": 1731797254, + "narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs-wayland", + "nix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723303070, + "narHash": "sha256-krGNVA30yptyRonohQ+i9cnK+CfCpedg6z3qzqVJcTs=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "14c092e0326de759e16b37535161b3cb9770cea3", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "tsm": { + "inputs": { + "nim2nix": "nim2nix_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "nix", + "lastModified": 1731626313, + "narHash": "sha256-IGKZTmiJPfKBPq8m1TTmMPTKUxrsPwlHLv5UB1px6iU=", + "owner": "daylinmorgan", + "repo": "tsm", + "rev": "62ca20fd9b608adc0dbdb30a8d5bf65e451d8908", + "type": "github" + }, + "original": { + "dir": "nix", + "owner": "daylinmorgan", + "repo": "tsm", + "type": "github" + } + }, + "utils": { + "inputs": { + "nim2nix": [ + "nim2nix" + ], + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1731360812, + "narHash": "sha256-4DKaz/gafKL2JOsC0rwO7/5R8AlwJ2EcLmxSPG8HO64=", + "ref": "refs/heads/main", + "rev": "32adb124b3b7ea820e3d0e67622c10e1c711ade4", + "revCount": 23, + "type": "git", + "url": "https://git.dayl.in/daylin/utils.git" + }, + "original": { + "type": "git", + "url": "https://git.dayl.in/daylin/utils.git" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1731703417, + "narHash": "sha256-rheDc/7C+yI+QspYr9J2z9kQ5P9F4ATapI7qyFAe1XA=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "8070f36deec723de71e7557441acb17e478204d3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, + "zig": { + "inputs": { + "flake-compat": [ + "ghostty" + ], + "flake-utils": "flake-utils", + "nixpkgs": [ + "ghostty", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1717848532, + "narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +}