Compare commits

..

No commits in common. "b40719a50f35a1bd6297a7d3209731deb886ead3" and "0446dacc1a2a97856982aadd1e12be3ede55b1fa" have entirely different histories.

9 changed files with 143 additions and 73 deletions

View file

@ -41,7 +41,7 @@ jobs:
with: with:
purge-packages: 'true' purge-packages: 'true'
- uses: DeterminateSystems/nix-installer-action@v15 - uses: DeterminateSystems/nix-installer-action@v14
with: with:
source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux
extra-conf: | extra-conf: |

View file

@ -32,7 +32,7 @@ jobs:
- run: git checkout -B flake-lock - run: git checkout -B flake-lock
- uses: DeterminateSystems/nix-installer-action@v15 - uses: DeterminateSystems/nix-installer-action@v14
with: with:
source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux
extra-conf: | extra-conf: |
@ -101,7 +101,7 @@ jobs:
host: github.com host: github.com
private-key: ${{ secrets.SSH_PRIVATE_KEY }} private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- uses: DeterminateSystems/nix-installer-action@v15 - uses: DeterminateSystems/nix-installer-action@v14
with: with:
source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux
extra-conf: | extra-conf: |

View file

@ -240,11 +240,11 @@
"zig": "zig" "zig": "zig"
}, },
"locked": { "locked": {
"lastModified": 1731351056, "lastModified": 1731002191,
"narHash": "sha256-a779DeG+HXRR5Gy/pU47KI/1xeLdeYoA8gyopRRseW4=", "narHash": "sha256-KIt2bydFMFHdaeS27ArWduIeLl8V2FZfceCrspXeJ0k=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "70b984ebaff9fb9e80e0332a00eaac7b45b52e1d", "rev": "7517d0a86b4008fe7d1a05b675cf1f93152e8b71",
"revCount": 7942, "revCount": 7909,
"type": "git", "type": "git",
"url": "ssh://git@github.com/ghostty-org/ghostty" "url": "ssh://git@github.com/ghostty-org/ghostty"
}, },
@ -318,11 +318,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1731340175, "lastModified": 1730969692,
"narHash": "sha256-IfE7lqNFfFyzAu3pe2XTeNovU9tVzJeGLzQ2B8Segy0=", "narHash": "sha256-yHY98IWTLDz57TrseUxdh5QnpngcNCjNXTJ2XCeNhtk=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "f5fa84554ffe55e29a397014964238be89ffa54d", "rev": "e58e97b0a38b8ccc87a4304c9e4e2b37c9966875",
"revCount": 5448, "revCount": 5425,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland/" "url": "https://github.com/hyprwm/Hyprland/"
@ -413,11 +413,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731019624, "lastModified": 1730299948,
"narHash": "sha256-22viQMlEqNjwj+wHpo9FkKD/vlXmj+dzm+23VezXlME=", "narHash": "sha256-RGP06zJWKK7D3E9xrK0DnW4gzcmITy6U7RuePxVX0jI=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "a41acd54a3f887f4050c518de25963d5e7d6208f", "rev": "8a866a8082a8debb356b257df1af6ce3becbd1a6",
"revCount": 18, "revCount": 16,
"type": "git", "type": "git",
"url": "https://git.dayl.in/daylin/hyprman.git" "url": "https://git.dayl.in/daylin/hyprman.git"
}, },
@ -438,11 +438,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731163338, "lastModified": 1730968903,
"narHash": "sha256-Qflei0JBeqQ0c8jxA8e982xAxJvfMwfx4Aci2eJi84s=", "narHash": "sha256-zFvzLXcSm0Ia4XI1SE4FQ9KE63hlGrRWhLtwMolWuR8=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "60d3dece30f98e8ad85131829c8529950630d6bc", "rev": "3ce0cde8709cdacbfba471f8e828433b58a561e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -482,11 +482,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1731240728, "lastModified": 1730635946,
"narHash": "sha256-a0xQE3cwZLMsycd9NneFC3z29E+z1PSD/ozhISM7qYQ=", "narHash": "sha256-CdeoMnMXpCq4wBWEWHfUUs68zoyAJLfp1JmfXWtmAgc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lib-aggregate", "repo": "lib-aggregate",
"rev": "807ab623e6d01e931269a28a07c59dcfd6474173", "rev": "d0ecc1890f77e9e170f2de279d6902d84a0cbc51",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -498,11 +498,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1731334117, "lastModified": 1730938523,
"narHash": "sha256-GoddkPg0/UDv06KcQJiOYP/2IzruYorbI03QRCjN3K8=", "narHash": "sha256-UAh8hocN7Vdl+sXxuToL6Cm1TsMHBpcEmHy+l5xFrMk=",
"rev": "8a9094303bc7873c979e54ea20b9f50464ee3965", "rev": "72cce7be3f8031ccf6dc9d3c69ba19068b3bd21f",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/8a9094303bc7873c979e54ea20b9f50464ee3965.tar.gz?rev=8a9094303bc7873c979e54ea20b9f50464ee3965" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/72cce7be3f8031ccf6dc9d3c69ba19068b3bd21f.tar.gz?rev=72cce7be3f8031ccf6dc9d3c69ba19068b3bd21f"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -521,11 +521,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731185731, "lastModified": 1727752861,
"narHash": "sha256-RNaIu43b9PoXEhW4OqXUNZKY/jezQyCYWwdv1M0VjsA=", "narHash": "sha256-jowmo2aEzrEpPSM96IWtajuogdJm7DjAWxFTEb7Ct0s=",
"rev": "691193879d96bdfd1e6ab5ebcca2fadc7604cf34", "rev": "fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/691193879d96bdfd1e6ab5ebcca2fadc7604cf34.tar.gz?rev=691193879d96bdfd1e6ab5ebcca2fadc7604cf34" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d.tar.gz?rev=fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -615,11 +615,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1731250407, "lastModified": 1730389079,
"narHash": "sha256-AwyDiazOqBZBUPp0vqYEzvBseZo3Eg16mfjAFvKv2lc=", "narHash": "sha256-g/CJ/KKe5MGsVx1oCBl0F9aCdcNSDeOw8H7e5QDGa2c=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-eval-jobs", "repo": "nix-eval-jobs",
"rev": "96902c4573cd03ea7e533634cb49861148f49a7a", "rev": "7f9159a16584ee86eed077c8a73e845690b7d513",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -657,11 +657,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731209121, "lastModified": 1730604744,
"narHash": "sha256-BF7FBh1hIYPDihdUlImHGsQzaJZVLLfYqfDx41wjuF0=", "narHash": "sha256-/MK6QU4iOozJ4oHTfZipGtOgaT/uy/Jm4foCqHQeYR4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "896019f04b22ce5db4c0ee4f89978694f44345c3", "rev": "cc2ddbf2df8ef7cc933543b1b42b845ee4772318",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -708,11 +708,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1731200463, "lastModified": 1730595754,
"narHash": "sha256-qDaAweJjdFbVExqs8aG27urUgcgKufkIngHW3Rzustg=", "narHash": "sha256-F6DyPKY2WAUf8fpaT9vQwwRUs74InQM36ng//h9wNhY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "e04234d263750db01c78a412690363dc2226e68a", "rev": "2376a861a1a15f05339245fbaa4422f2d1bdf485",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -745,11 +745,11 @@
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1731353483, "lastModified": 1730993036,
"narHash": "sha256-0IZPqgc4k/VqP3yLhNw8QbiPRq56Cl07ewRv7aqQZIw=", "narHash": "sha256-GbCKT3+7FaY0tlIuK0Wdc10HqiN3FBmgHOdnvTAyJGM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-wayland", "repo": "nixpkgs-wayland",
"rev": "e71b4345d9aebca98d9ea91eb5f86d57f804f6d6", "rev": "ddfa3b485c17ad2594c44c4785533ea45db4e32a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -792,11 +792,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1731139594, "lastModified": 1730785428,
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2", "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -808,11 +808,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1730958623, "lastModified": 1723221148,
"narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=", "narHash": "sha256-7pjpeQlZUNQ4eeVntytU3jkw9dFK3k1Htgk2iuXjaD8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "85f7e662eda4fa3a995556527c87b2524b691933", "rev": "154bcb95ad51bc257c2ce4043a725de6ca700ef6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -824,11 +824,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1731139594, "lastModified": 1730785428,
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2", "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -914,6 +914,30 @@
"type": "github" "type": "github"
} }
}, },
"roc": {
"inputs": {
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_5",
"nixgl": "nixgl",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1730937151,
"narHash": "sha256-wU1ZpJhIS7L7h5GybhKuDkeqm4I6KI+NLOoKaDMBp7w=",
"owner": "roc-lang",
"repo": "roc",
"rev": "1a5776653cebeeb03db57adce8f51910b7296295",
"type": "github"
},
"original": {
"owner": "roc-lang",
"repo": "roc",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"comin": "comin", "comin": "comin",
@ -1158,6 +1182,53 @@
"repo": "zig-overlay", "repo": "zig-overlay",
"type": "github" "type": "github"
} }
},
"zig-overlay": {
"inputs": {
"flake-compat": "flake-compat_5",
"flake-utils": "flake-utils_6",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730981477,
"narHash": "sha256-xumPGh1MLymi4RrJmUqZQxO9DYXaqaYD60yPtpKcw4g=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "057830f53f122fefb8ebd151ce717a821eb47394",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
},
"zls": {
"inputs": {
"flake-utils": "flake-utils_7",
"gitignore": "gitignore_2",
"nixpkgs": [
"nixpkgs"
],
"zig-overlay": [
"zig-overlay"
]
},
"locked": {
"lastModified": 1731002594,
"narHash": "sha256-GMz5G0wlpTrM4U+PXQHsW4+LIw83FX04A+YLWFTaA6E=",
"owner": "zigtools",
"repo": "zls",
"rev": "6144e778307f65c18308bb12fa5a25add91afb27",
"type": "github"
},
"original": {
"owner": "zigtools",
"repo": "zls",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -1,5 +1,5 @@
nimbledeps nimbledeps
nimble.paths nimble.paths
nimble.develop nimble.develop
bin/
oizys.out oizys.out

View file

@ -1,3 +1,6 @@
task build, "build oizys":
selfExec "c -o:oizys src/oizys.nim"
# begin Nimble config (version 2) # begin Nimble config (version 2)
--noNimblePath --noNimblePath
when withDir(thisDir(), system.fileExists("nimble.paths")): when withDir(thisDir(), system.fileExists("nimble.paths")):

View file

@ -8,7 +8,7 @@ buildNimblePackage {
verions = "unstable"; verions = "unstable";
src = lib.cleanSource ./.; src = lib.cleanSource ./.;
nativeBuildInputs = [ openssl ]; nativeBuildInputs = [ openssl ];
nimbleDepsHash = "sha256-ZEPzosRwokkvPKbv5nqzATv6IqUhqM2prOU0vUUC80Q="; nimbleDepsHash = "sha256-/H/HvnJqpDJcyVJ2rbn7PDSSoJB/TMr9yiIKxtB1O+E=";
meta = { meta = {
description = "nix begat oizys"; description = "nix begat oizys";

View file

@ -3,12 +3,12 @@
"packages": { "packages": {
"hwylterm": { "hwylterm": {
"version": "0.1.0", "version": "0.1.0",
"vcsRevision": "65a952e9f0d75659d39f8a3b146753e291ee0a66", "vcsRevision": "e8e090c5b76bc555231bda536193df6f92a54db2",
"url": "https://github.com/daylinmorgan/hwylterm", "url": "https://github.com/daylinmorgan/hwylterm",
"downloadMethod": "git", "downloadMethod": "git",
"dependencies": [], "dependencies": [],
"checksums": { "checksums": {
"sha1": "10894d492bbe1d0ea32ee9bb0686abfcd3b0b0fe" "sha1": "925aad3ce660979de7cdb2f58a31dc7ac693e34d"
} }
}, },
"jsony": { "jsony": {

View file

@ -13,5 +13,5 @@ bin = @["oizys"]
requires "nim >= 2.0.8" requires "nim >= 2.0.8"
requires "jsony" requires "jsony"
requires "zippy" requires "zippy"
requires "https://github.com/daylinmorgan/hwylterm#65a952e" requires "https://github.com/daylinmorgan/hwylterm#e8e090c"

View file

@ -1,6 +1,6 @@
## nix begat oizys ## nix begat oizys
import std/[os, osproc, sequtils, strformat, strutils] import std/[os, osproc, sequtils, strformat, strutils]
import hwylterm, hwylterm/[hwylcli] import hwylterm, hwylterm/[hwylcli, logging]
import oizys/[context, github, nix, logging] import oizys/[context, github, nix, logging]
proc checkExes() = proc checkExes() =
@ -13,49 +13,47 @@ hwylCli:
name "oizys" name "oizys"
flags: flags:
[global] [global]
flake: flake "path/to/flake"
T string
? "path/to/flake"
host: host:
T seq[string] T seq[string]
? "host(s) to build" ? "host(s) to build"
debug: debug:
T bool
? "enable debug mode" ? "enable debug mode"
- d - d
resetCache: resetCache:
T bool
? "set cache timeout to 0" ? "set cache timeout to 0"
- r - r
[yes] [yes]
yes: yes:
- y T bool
? "skip all confirmation prompts" ? "skip all confirmation prompts"
[minimal] [minimal]
minimal: minimal:
T bool
? "set minimal" ? "set minimal"
- m - m
preSub: preSub:
setupLoggers(debug) setupLoggers(debug)
updateContext(host, flake, debug, resetCache) updateContext(host, flake, debug, resetCache)
subcommands: subcommands:
[build] --- build
... "nix build" ... "nix build"
flags: flags:
^[minimal] ^[minimal]
run: run:
nixBuild(minimal, args) nixBuild(minimal, args)
[cache] --- cache
... "build and push store paths" ... "build and push store paths"
flags: flags:
name: name:
T string
? "name of binary cache" ? "name of binary cache"
* "oizys" * "oizys"
service: service:
T string
? "name of cache service" ? "name of cache service"
* "attic" * "attic"
jobs: jobs:
@ -66,25 +64,24 @@ hwylCli:
run: run:
nixBuildWithCache(name, args, service, jobs) nixBuildWithCache(name, args, service, jobs)
[ci] --- ci
... "trigger GHA" ... "trigger GHA"
flags: flags:
`ref`: `ref`:
T string
? "git ref/branch/tag to trigger workflow on" ? "git ref/branch/tag to trigger workflow on"
* "main" * "main"
run: run:
if args.len == 0: fatalQuit "expected workflow file name" if args.len == 0: fatalQuit "expected workflow file name"
createDispatch(args[0], `ref`) createDispatch(args[0], `ref`)
[dry] --- dry
... "dry run build" ... "dry run build"
flags: flags:
^[minimal] ^[minimal]
run: run:
nixBuildHostDry(minimal, args) nixBuildHostDry(minimal, args)
[os] --- os
? "[b]oizys os[/] [i]subcmd[/] [[[faint]flags[/]]" ? "[b]oizys os[/] [i]subcmd[/] [[[faint]flags[/]]"
... "nixos-rebuild [italic]subcmd[/]" ... "nixos-rebuild [italic]subcmd[/]"
run: run:
@ -97,17 +94,16 @@ hwylCli:
) )
nixosRebuild(subcmd, args[1..^1]) nixosRebuild(subcmd, args[1..^1])
[output] --- output
... "nixos config attr" ... "nixos config attr"
run: run:
echo nixosConfigAttrs().join(" ") echo nixosConfigAttrs().join(" ")
[update] --- update
... "update and run nixos-rebuild" ... "update and run nixos-rebuild"
flags: flags:
^[yes] ^[yes]
preview: preview:
- p
T bool T bool
? "show preview and exit" ? "show preview and exit"
run: run:
@ -120,4 +116,4 @@ hwylCli:
if yes or confirm("Proceed with system update?"): if yes or confirm("Proceed with system update?"):
updateRepo() updateRepo()
nixosRebuild("switch") nixosRebuild("switch")