Compare commits

..

9 commits

Author SHA1 Message Date
cd378dcbb9 flake.lock: Update
Flake lock file updates:

• Updated input 'ghostty':
    'git+ssh://git@github.com/ghostty-org/ghostty?ref=refs/heads/main&rev=d47df211b03894427592851b0be3b528ff8221ff' (2024-11-02)
  → 'git+ssh://git@github.com/ghostty-org/ghostty?ref=refs/heads/main&rev=4dd6598a693c9d0777838bb39cc1549eb5d6f19a' (2024-11-03)
• Updated input 'hyprland':
    'git+https://github.com/hyprwm/Hyprland/?ref=refs/heads/main&rev=7c7a84ff60f8c1e00c6a0de3f7656f0bbd933d56' (2024-10-30)
  → 'git+https://github.com/hyprwm/Hyprland/?ref=refs/heads/main&rev=cd0d0491261728260de3d1aff150e1b6c05f9e86' (2024-11-03)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/1997e4aa514312c1af7e2bda7fad1644e778ff26' (2024-10-20)
  → 'github:NixOS/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02)
• Updated input 'hyprland/xdph':
    'github:hyprwm/xdg-desktop-portal-hyprland/fb9c8d665af0588bb087f97d0f673ddf0d501787' (2024-10-05)
  → 'github:hyprwm/xdg-desktop-portal-hyprland/998f646762b94fbac61b0271ce66d3e617262858' (2024-10-29)
• Updated input 'lix':
    'beb193d1e2.tar.gz?narHash=sha256-qs7u2nCwfEV93SKV1QSikOwRbHDEA1CWYZiVKI9Hhxk%3D&rev=beb193d1e2121cdbd51e8309572522ee9a841395' (2024-10-30)
  → 'b1a0e3c002.tar.gz?narHash=sha256-ZsTpii4kZcioRF3bu3/pS374R9GYQVyrMpBNr2ZUnVg%3D&rev=b1a0e3c0029c2dd5fb7c8dd2db4f9e0b309c9f54' (2024-11-03)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/0e3a8778c2ee218eff8de6aacf3d2fa6c33b2d4f' (2024-10-27)
  → 'github:nix-community/nix-index-database/cc2ddbf2df8ef7cc933543b1b42b845ee4772318' (2024-11-03)
• Updated input 'nixos-wsl':
    'github:nix-community/NixOS-WSL/b124084667fb4c912fda68fdd9d05f59e18b6ef7' (2024-10-28)
  → 'github:nix-community/NixOS-WSL/adb6bc4b661a43328752b4575be4968a4990c033' (2024-11-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/18536bf04cd71abd345f9579158841376fdd0c5a' (2024-10-25)
  → 'github:nixos/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02)
• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/1bb7ec644d299edf5b88fd2dc67042d14c6638ae' (2024-10-31)
  → 'github:nix-community/nixpkgs-wayland/2920f4cc370aedb9043644343ac7fc0251f2cde8' (2024-11-03)
• Updated input 'nixpkgs-wayland/lib-aggregate':
    'github:nix-community/lib-aggregate/7d235f23a84b54c39b1579b68b13e1ff83f5b1ad' (2024-10-27)
  → 'github:nix-community/lib-aggregate/d0ecc1890f77e9e170f2de279d6902d84a0cbc51' (2024-11-03)
• Updated input 'nixpkgs-wayland/lib-aggregate/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/7d68864343650322045894951602d6e82b5296d7' (2024-10-27)
  → 'github:nix-community/nixpkgs.lib/2376a861a1a15f05339245fbaa4422f2d1bdf485' (2024-11-03)
• Updated input 'nixpkgs-wayland/nix-eval-jobs':
    'github:nix-community/nix-eval-jobs/a3307ac4b38b6dae769f771c877a6f2c236ee238' (2024-10-10)
  → 'github:nix-community/nix-eval-jobs/7f9159a16584ee86eed077c8a73e845690b7d513' (2024-10-31)
• Updated input 'nixpkgs-wayland/nixpkgs':
    'github:nixos/nixpkgs/18536bf04cd71abd345f9579158841376fdd0c5a' (2024-10-25)
  → 'github:nixos/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02)
• Updated input 'utils':
    'git+https://git.dayl.in/daylin/utils.git?ref=refs/heads/main&rev=aa0dbe4d05b3109b947f8bd0444228a800f55dc6' (2024-10-30)
  → 'git+https://git.dayl.in/daylin/utils.git?ref=refs/heads/main&rev=d86dff8360781e4ccd82a0e5a8efdf1ad07e97db' (2024-10-31)
• Updated input 'zig-overlay':
    'github:mitchellh/zig-overlay/0802240ae001576ebf9cf0bbc003a8b1291c910b' (2024-10-31)
  → 'github:mitchellh/zig-overlay/68091a14f9c3d803ba6ae13cab2a52623c15633d' (2024-11-03)
• Updated input 'zls':
    'github:zigtools/zls/b2e89dfe92850cf02cbd4b73004aaaecd5cf1739' (2024-10-27)
  → 'github:zigtools/zls/2be424de53eb6f07c5cd0097f6aa99079912e43e' (2024-11-03)
2024-11-03 20:10:49 +00:00
7ebcb32b63
more 2024-11-03 14:06:21 -06:00
076a1c4ebd
more cache build changes 2024-11-03 13:59:34 -06:00
84833821d0
oizys cache build modifications 2024-11-03 12:59:20 -06:00
853678a1a9
add build flag 2024-11-03 11:37:11 -06:00
67e94ed1cf
add todo 2024-11-03 11:11:37 -06:00
e6a7e04cfb
autopush the result 2024-11-03 09:48:13 -06:00
9a105ddf62
try adding key 2024-11-03 09:33:36 -06:00
5c0d3713f6
finally the ghostty beta has arrived 2024-11-03 09:11:29 -06:00
7 changed files with 229 additions and 86 deletions

View file

@ -20,6 +20,12 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Setup SSH
uses: MrSquaare/ssh-setup-action@v1
with:
host: github.com
private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- uses: daylin-bot/actions/setup@main
- uses: ./.github/actions/clean-disk
@ -51,7 +57,9 @@ jobs:
>> $GITHUB_STEP_SUMMARY
- name: Pre-build oizys
run: nix build .
run: |
nix build .
attic push oizys result
- name: Build
run: >

View file

@ -40,11 +40,11 @@
]
},
"locked": {
"lastModified": 1729233997,
"narHash": "sha256-NvICw3H/U6J/yZ5ibszSAl/HQMhrp7XPnD70ITwIRFk=",
"lastModified": 1730642645,
"narHash": "sha256-enJml5i2n0pDJ9kVeAylEQKp9fzdXDO45iAm39SqDwM=",
"owner": "daylinmorgan",
"repo": "f1multiviewer-flake",
"rev": "58cc1fd579116b7b49522dd35fe8eddef3e64ecd",
"rev": "c85627a67eeb3e606f1df6b7747dfae6537f79f9",
"type": "github"
},
"original": {
@ -156,14 +156,14 @@
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
"systems": "systems"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
@ -230,6 +230,24 @@
"inputs": {
"systems": "systems_6"
},
"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_6": {
"inputs": {
"systems": "systems_7"
},
"locked": {
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
@ -244,9 +262,9 @@
"type": "github"
}
},
"flake-utils_6": {
"flake-utils_7": {
"inputs": {
"systems": "systems_7"
"systems": "systems_8"
},
"locked": {
"lastModified": 1726560853,
@ -277,6 +295,30 @@
"type": "github"
}
},
"ghostty": {
"inputs": {
"nixpkgs-stable": [
"nixpkgs"
],
"nixpkgs-unstable": [
"nixpkgs"
],
"zig": "zig"
},
"locked": {
"lastModified": 1730656540,
"narHash": "sha256-OsKAF0OGzCk0jHNjNymvdKDtsaC70I+iuoNXWAWr5+4=",
"ref": "refs/heads/main",
"rev": "4dd6598a693c9d0777838bb39cc1549eb5d6f19a",
"revCount": 7866,
"type": "git",
"url": "ssh://git@github.com/ghostty-org/ghostty"
},
"original": {
"type": "git",
"url": "ssh://git@github.com/ghostty-org/ghostty"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -359,15 +401,15 @@
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"systems": "systems_2",
"xdph": "xdph"
},
"locked": {
"lastModified": 1730373668,
"narHash": "sha256-8p5JTUGFuhnyuF9lD98ioeE3zYaCmsizLWk4Y3KszAI=",
"lastModified": 1730652188,
"narHash": "sha256-3L+Jh3J3JvJPsGTqSOIKjwZy/AysR0WOLgGKNkXFqxs=",
"ref": "refs/heads/main",
"rev": "93b4478e70af6ffb08a4a66a6d0364c3296db296",
"revCount": 5396,
"rev": "cd0d0491261728260de3d1aff150e1b6c05f9e86",
"revCount": 5407,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland/"
@ -523,15 +565,15 @@
},
"lib-aggregate": {
"inputs": {
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_4",
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1730031145,
"narHash": "sha256-GZz0LGkeduajnF7zUuPu5evNyoOATcSsRZCkG1OqiwY=",
"lastModified": 1730635946,
"narHash": "sha256-CdeoMnMXpCq4wBWEWHfUUs68zoyAJLfp1JmfXWtmAgc=",
"owner": "nix-community",
"repo": "lib-aggregate",
"rev": "7d235f23a84b54c39b1579b68b13e1ff83f5b1ad",
"rev": "d0ecc1890f77e9e170f2de279d6902d84a0cbc51",
"type": "github"
},
"original": {
@ -543,11 +585,11 @@
"lix": {
"flake": false,
"locked": {
"lastModified": 1730412807,
"narHash": "sha256-6wOpwSw1cM5aMg7thaT+uC3mfea+rBIBuKGEKlQAVes=",
"rev": "8005d1736590df482290992afbb8b1a305166f90",
"lastModified": 1730610940,
"narHash": "sha256-ZsTpii4kZcioRF3bu3/pS374R9GYQVyrMpBNr2ZUnVg=",
"rev": "b1a0e3c0029c2dd5fb7c8dd2db4f9e0b309c9f54",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/8005d1736590df482290992afbb8b1a305166f90.tar.gz?rev=8005d1736590df482290992afbb8b1a305166f90"
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/b1a0e3c0029c2dd5fb7c8dd2db4f9e0b309c9f54.tar.gz?rev=b1a0e3c0029c2dd5fb7c8dd2db4f9e0b309c9f54"
},
"original": {
"type": "tarball",
@ -556,7 +598,7 @@
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"flakey-profile": "flakey-profile",
"lix": [
"lix"
@ -723,11 +765,11 @@
]
},
"locked": {
"lastModified": 1729999765,
"narHash": "sha256-LYsavZXitFjjyETZoij8usXjTa7fa9AIF3Sk3MJSX+Y=",
"lastModified": 1730604744,
"narHash": "sha256-/MK6QU4iOozJ4oHTfZipGtOgaT/uy/Jm4foCqHQeYR4=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "0e3a8778c2ee218eff8de6aacf3d2fa6c33b2d4f",
"rev": "cc2ddbf2df8ef7cc933543b1b42b845ee4772318",
"type": "github"
},
"original": {
@ -764,15 +806,15 @@
"nixos-wsl": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1730120924,
"narHash": "sha256-I6hwd+YlgefioLfmsM04MxzbEAES1N328/T+VqhcWnQ=",
"lastModified": 1730453870,
"narHash": "sha256-d+kIgz4BvTXb7emjSFV3zjNydGmLUmuluQjdBb51R9o=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "b124084667fb4c912fda68fdd9d05f59e18b6ef7",
"rev": "adb6bc4b661a43328752b4575be4968a4990c033",
"type": "github"
},
"original": {
@ -783,11 +825,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1729413321,
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=",
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"type": "github"
},
"original": {
@ -799,11 +841,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1729990941,
"narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
"lastModified": 1730595754,
"narHash": "sha256-F6DyPKY2WAUf8fpaT9vQwwRUs74InQM36ng//h9wNhY=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "7d68864343650322045894951602d6e82b5296d7",
"rev": "2376a861a1a15f05339245fbaa4422f2d1bdf485",
"type": "github"
},
"original": {
@ -836,11 +878,11 @@
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1730410240,
"narHash": "sha256-PL7RGHRo0fyukX4TRKmtYb5fDA6hCL0Wg8jnSbDL0Zk=",
"lastModified": 1730638537,
"narHash": "sha256-2HOixA1kKx0gmPFWlg6lYlQ452rvt9Ims2+/wk+nsQM=",
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"rev": "b96564c7722abb8cfff2fae01cef9d6819fca259",
"rev": "2920f4cc370aedb9043644343ac7fc0251f2cde8",
"type": "github"
},
"original": {
@ -883,11 +925,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1730200266,
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"type": "github"
},
"original": {
@ -915,11 +957,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1730200266,
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"type": "github"
},
"original": {
@ -1008,7 +1050,7 @@
"roc": {
"inputs": {
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_4",
"flake-utils": "flake-utils_5",
"nixgl": "nixgl",
"nixpkgs": [
"nixpkgs"
@ -1032,6 +1074,7 @@
"root": {
"inputs": {
"f1multiviewer": "f1multiviewer",
"ghostty": "ghostty",
"hyprland": "hyprland",
"hyprland-contrib": "hyprland-contrib",
"hyprman": "hyprman",
@ -1090,21 +1133,6 @@
}
},
"systems": {
"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_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1119,6 +1147,21 @@
"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,
@ -1194,6 +1237,21 @@
"type": "github"
}
},
"systems_8": {
"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": [
@ -1286,11 +1344,11 @@
]
},
"locked": {
"lastModified": 1728166987,
"narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=",
"lastModified": 1730187742,
"narHash": "sha256-M0umGIIvVFqCwA0fQ5edivMTbRYA0r/5tXK8sr+M7EA=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787",
"rev": "998f646762b94fbac61b0271ce66d3e617262858",
"type": "github"
},
"original": {
@ -1299,20 +1357,45 @@
"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"
}
},
"zig-overlay": {
"inputs": {
"flake-compat": "flake-compat_5",
"flake-utils": "flake-utils_5",
"flake-utils": "flake-utils_6",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730421185,
"narHash": "sha256-6KovnDOSMKNPRrdmMCIk/FrvomoD5wkt5zRxhbnQklA=",
"lastModified": 1730593948,
"narHash": "sha256-1ndLLzFUh2uKaWjvH25lohGCSpBXANwyVmhGCDBFM6c=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "20b4dafc348320f8deefeed627de70e403742c05",
"rev": "68091a14f9c3d803ba6ae13cab2a52623c15633d",
"type": "github"
},
"original": {
@ -1323,7 +1406,7 @@
},
"zls": {
"inputs": {
"flake-utils": "flake-utils_6",
"flake-utils": "flake-utils_7",
"gitignore": "gitignore_2",
"nixpkgs": [
"nixpkgs"
@ -1333,11 +1416,11 @@
]
},
"locked": {
"lastModified": 1730064361,
"narHash": "sha256-myb/4V8tP3n3WJQlaDrCmQkbmcMEcgX1mFu2jdfwTsk=",
"lastModified": 1730664479,
"narHash": "sha256-kZ7uEWpO+qZGT1a+0EYOVWcSF04hEj9AqFo/ZMZIUBQ=",
"owner": "zigtools",
"repo": "zls",
"rev": "b2e89dfe92850cf02cbd4b73004aaaecd5cf1739",
"rev": "2be424de53eb6f07c5cd0097f6aa99079912e43e",
"type": "github"
},
"original": {

View file

@ -22,6 +22,11 @@
inputs.lix.follows = "lix";
};
# https://github.com/ghostty-org/ghostty/issues/2025
ghostty.url = "git+ssh://git@github.com/ghostty-org/ghostty";
ghostty.inputs.nixpkgs-stable.follows = "nixpkgs";
ghostty.inputs.nixpkgs-unstable.follows = "nixpkgs";
hyprland.url = "git+https://github.com/hyprwm/Hyprland/?submodules=1";
hyprland-contrib.url = "github:hyprwm/contrib";
roc.url = "github:roc-lang/roc";

View file

@ -1,8 +1,13 @@
{ pkgs, flake, ... }:
{
environment.systemPackages =
[ (flake.pkg "utils") ]
[
(flake.pkg "utils")
(flake.pkg "ghostty")
]
++ (with pkgs; [
distrobox
zk
quarto

View file

@ -21,6 +21,7 @@ type
CaptStdout
CaptStderr
# TODO: support both capturing and inheriting the stream?
proc runCmdCapt*(
cmd: string,
capture: set[CaptureGrp] = {CaptStdout},

View file

@ -1,7 +1,7 @@
import std/[
algorithm, json,
enumerate, os, sequtils, strformat,
strutils, sugar, logging, tables
strutils, sugar, logging, tables, times
]
import hwylterm, hwylterm/logging, jsony
@ -119,9 +119,15 @@ proc toBuildNixosConfiguration(): seq[string] =
return output.toBuild.mapIt(it.storePath)
type
DerivationOutputsOut = object
path: string
DerivationOutputs = object
`out`: DerivationOutputsOut
NixDerivation = object
inputDrvs: Table[string, JsonNode]
name: string
outputs: DerivationOutputs
proc evaluateDerivations(drvs: seq[string]): Table[string, NixDerivation] =
var cmd = "nix derivation show -r"
@ -166,18 +172,54 @@ func isIgnored(drv: string): bool =
if name.startswith(pkg):
return true
# proc systemPathDrvsToBuild(): seq[string] =
type
OizysDerivation = object
drv: NixDerivation # do i need this ?
output: string
name: string
iterator getSystemPathDrvs(drvs: Table[string, NixDerivation]): string =
let systemPaths = findSystemPaths(drvs)
for p in systemPaths:
for d in drvs[p].inputDrvs.keys():
yield d
proc getOizysDerivations(): seq[OizysDerivation] =
let toBuild = toBuildNixosConfiguration()
let drvs = evaluateDerivations(nixosConfigAttrs())
for name in getSystemPathDrvs(drvs):
if name in toBuild and not isIgnored(name):
let nixDrv = drvs[name]
result.add OizysDerivation(
name: name,
output: nixDrv.outputs.`out`.path,
drv: nixDrv,
)
proc systemPathDrvsToBuild(): seq[string] =
var inputDrvs, dropped: seq[string]
let toBuild = toBuildNixosConfiguration()
let drvs = evaluateDerivations(nixosConfigAttrs())
let systemPaths = findSystemPaths(drvs)
for p in systemPaths:
inputDrvs &= drvs[p].inputDrvs.keys().toSeq()
(result, _) = filterSeq(inputDrvs, (s) => s in toBuild)
(dropped, result) = filterSeq(result, isIgnored)
echo "SOMETHING SHOULD HAPPEN HERE!"
for drv in result:
echo drv
echo drvs[drv]
debug fmt"ignored {dropped.len} derivations"
result = result.mapIt(it & "^*")
func splitDrv(drv: string): tuple[name, hash:string] =
let s = drv.split("-", 1)
(s[1].replace(".drv^*",""),s[0].split("/")[^1])
@ -240,27 +282,27 @@ proc nixBuildWithCache*(name: string, rest:seq[string], service: string, jobs: i
if findExe(service) == "": fatalQuit fmt"is {service} installed?"
info bbfmt"building and pushing to cache: [b]{name}"
debug "determining missing cache hits"
let drvs = systemPathDrvsToBuild()
let drvs = getOizysDerivations()
if drvs.len == 0:
info "nothing to build"
quit "exiting...", QuitSuccess
var outs: seq[string]
# TODO: add back reporting to GITHUB SUMMARY
# include time to build?
var outs: seq[string]
for drv in drvs:
let startTime = now()
var cmd = "nix build"
cmd.addArg drv
cmd.addArg drv.name & "^*"
cmd.addArg "--no-link"
cmd.addArg "--print-out-paths"
# cmd.addArg "--print-out-paths"
# cmd.addArg "-L"
cmd.addArgs rest
let (path, _, buildCode) = runCmdCapt(cmd)
let buildCode = runCmd(cmd)
if buildCode != 0:
# TODO: propagate errors using nix log?
error "failed to build: " & drv
error "failed to build: " & drv.name
continue
outs &= path.strip().splitLines()
info "build duration: " & $(now() - startTime)
outs &= drv.output
var cmd = service
cmd.addArg "push"
@ -272,4 +314,3 @@ proc nixBuildWithCache*(name: string, rest:seq[string], service: string, jobs: i
if pushErr != 0:
errorQuit "failed to push build to cache"