mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-12-27 14:10:45 -06:00
Compare commits
14 commits
5b04c0519e
...
2ca688181b
Author | SHA1 | Date | |
---|---|---|---|
|
2ca688181b | ||
99cc850eb7 | |||
69ac3fa6a6 | |||
7dfe185a9f | |||
a7302bd609 | |||
bf192f478d | |||
7fc911b1a8 | |||
a160e2eccc | |||
6bbc8aa28a | |||
3040b77bff | |||
0b3f307660 | |||
77c6375f5f | |||
c0ba1896a5 | |||
bf6b0b26d8 |
11 changed files with 322 additions and 95 deletions
287
flake.lock
287
flake.lock
|
@ -1,5 +1,25 @@
|
|||
{
|
||||
"nodes": {
|
||||
"f1multiviewer": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712592932,
|
||||
"narHash": "sha256-G44hEGn5+PvjkY9YvUoWnFz9FZOtRKwEc6W/7EjzOgs=",
|
||||
"owner": "daylinmorgan",
|
||||
"repo": "f1multiviewer-flake",
|
||||
"rev": "189b84de363cfa1d95cc77093e4e3bcd1ff1e492",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "daylinmorgan",
|
||||
"repo": "f1multiviewer-flake",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1688025799,
|
||||
|
@ -15,6 +35,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
|
@ -39,7 +75,7 @@
|
|||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
|
@ -57,7 +93,7 @@
|
|||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
|
@ -73,9 +109,66 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"zls",
|
||||
"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": "hyprlang",
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
|
@ -86,11 +179,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711466786,
|
||||
"narHash": "sha256-sArxGyUBiCA1in+q6t0QqT+ZJiZ1PyBp7cNPKLmREM0=",
|
||||
"lastModified": 1712434681,
|
||||
"narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "d3876f34779cc03ee51e4aafc0d00a4f187c7544",
|
||||
"rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -103,20 +196,20 @@
|
|||
"inputs": {
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprlang": "hyprlang_2",
|
||||
"hyprlang": "hyprlang",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2",
|
||||
"systems": "systems",
|
||||
"wlroots": "wlroots",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712248444,
|
||||
"narHash": "sha256-ayxuwrzpow3cRoKtCYj3v7GGrDHTbKVDDUxb8wd1cL8=",
|
||||
"lastModified": 1713050186,
|
||||
"narHash": "sha256-AKdzVa0Zz5PQ1ptQgD0jj8J+UZUW9OeKGZ0mNVnkyI4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "c4b660a33930a0e60e853b6796c1fd76914b1719",
|
||||
"rev": "0634aaeac6cca12e4f72174c431c2db9da9c0072",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -133,11 +226,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711036118,
|
||||
"narHash": "sha256-BxWizZAc845ks9BjEXosRjfBv/NMr1WwoORBQuixfII=",
|
||||
"lastModified": 1712505318,
|
||||
"narHash": "sha256-fzlBLhXUN6y7mzEtcGNRDXxFakBEfaj4Bmj5PuoCNaM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "contrib",
|
||||
"rev": "536f00c5895015da1e7aa85bbee9aa6dcd149e69",
|
||||
"rev": "5870244b592c22558b658dbaf94f9e41afb0316f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -172,29 +265,6 @@
|
|||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprcursor",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709914708,
|
||||
"narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
|
@ -206,11 +276,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711250455,
|
||||
"narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
|
||||
"lastModified": 1711671891,
|
||||
"narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
|
||||
"rev": "c1402612146ba06606ebf64963a02bc1efe11e74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -219,17 +289,29 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"langref": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-94broSBethRhPJr0G9no4TPyB8ee6BQ/hHK1QnLPln0=",
|
||||
"type": "file",
|
||||
"url": "https://raw.githubusercontent.com/ziglang/zig/54bbc73f8502fe073d385361ddb34a43d12eec39/doc/langref.html.in"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://raw.githubusercontent.com/ziglang/zig/54bbc73f8502fe073d385361ddb34a43d12eec39/doc/langref.html.in"
|
||||
}
|
||||
},
|
||||
"lib-aggregate": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711886936,
|
||||
"narHash": "sha256-D2WENp9GuaCostvNcQ7vElekk0V5cuMdnFZ7NfRhVrQ=",
|
||||
"lastModified": 1712491724,
|
||||
"narHash": "sha256-E5EcBzf/zaR3hD8g1CDtqqwXXebSWtqOvoaR+LDjTME=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lib-aggregate",
|
||||
"rev": "9c06929b83e57c18d125f1105ba6a423f24083d2",
|
||||
"rev": "2737d0204685c3274390229a09eb8f7eaa1a9e89",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -288,11 +370,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711854532,
|
||||
"narHash": "sha256-JPStavwlT7TfxxiXHk6Q7sbNxtnXAIjXQJMLO0KB6M0=",
|
||||
"lastModified": 1712459390,
|
||||
"narHash": "sha256-e12bNDottaGoBgd0AdH/bQvk854xunlWAdZwr/oHO1c=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "2844b5f3ad3b478468151bd101370b9d8ef8a3a7",
|
||||
"rev": "4676d72d872459e1e3a248d049609f110c570e9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -303,11 +385,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1712192574,
|
||||
"narHash": "sha256-LbbVOliJKTF4Zl2b9salumvdMXuQBr2kuKP5+ZwbYq4=",
|
||||
"lastModified": 1712883908,
|
||||
"narHash": "sha256-icE1IJE9fHcbDfJ0+qWoDdcBXUoZCcIJxME4lMHwvSM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f480f9d09e4b4cf87ee6151eba068197125714de",
|
||||
"rev": "a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -319,11 +401,11 @@
|
|||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1711846064,
|
||||
"narHash": "sha256-cqfX0QJNEnge3a77VnytM0Q6QZZ0DziFXt6tSCV8ZSc=",
|
||||
"lastModified": 1712450863,
|
||||
"narHash": "sha256-K6IkdtMtq9xktmYPj0uaYc8NsIqHuaAoRBaMgu9Fvrw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "90b1a963ff84dc532db92f678296ff2499a60a87",
|
||||
"rev": "3c62b6a12571c9a7f65ab037173ee153d539905f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -342,11 +424,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712237761,
|
||||
"narHash": "sha256-NoMBBCADTms3yx5BL+sbc7vfDivNiYULO6t9GBAsPt0=",
|
||||
"lastModified": 1713039214,
|
||||
"narHash": "sha256-CV0LzaPJLlMOo8hv4qCvGoIYXB9GL8gxpVFZ+zpZkK4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs-wayland",
|
||||
"rev": "9b77653338f52da4b498abdf4835efb6ff6e453e",
|
||||
"rev": "b816217ba4fc77d19ca033ab8f13b35ba0331e91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -393,6 +475,7 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"f1multiviewer": "f1multiviewer",
|
||||
"hyprland": "hyprland",
|
||||
"hyprland-contrib": "hyprland-contrib",
|
||||
"nix-index-database": "nix-index-database",
|
||||
|
@ -401,16 +484,17 @@
|
|||
"pinix": "pinix",
|
||||
"stable": "stable",
|
||||
"tsm": "tsm",
|
||||
"zig2nix": "zig2nix"
|
||||
"zig2nix": "zig2nix",
|
||||
"zls": "zls"
|
||||
}
|
||||
},
|
||||
"stable": {
|
||||
"locked": {
|
||||
"lastModified": 1712168706,
|
||||
"narHash": "sha256-XP24tOobf6GGElMd0ux90FEBalUtw6NkBSVh/RlA6ik=",
|
||||
"lastModified": 1712867921,
|
||||
"narHash": "sha256-edTFV4KldkCMdViC/rmpJa7oLIU8SE/S35lh/ukC7bg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1487bdea619e4a7a53a4590c475deabb5a9d1bfb",
|
||||
"rev": "51651a540816273b67bc4dedea2d37d116c5f7fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -437,16 +521,16 @@
|
|||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
|
@ -527,20 +611,18 @@
|
|||
"wlroots": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"lastModified": 1709983277,
|
||||
"narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||
"type": "gitlab"
|
||||
"lastModified": 1712935342,
|
||||
"narHash": "sha256-zzIbTFNFd/as42jyGx23fil2uBDYYv+8GA5JmRq5y9c=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "wlroots-hyprland",
|
||||
"rev": "62eeffbe233d199f520a5755c344e85f8eab7940",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||
"type": "gitlab"
|
||||
"owner": "hyprwm",
|
||||
"repo": "wlroots-hyprland",
|
||||
"rev": "62eeffbe233d199f520a5755c344e85f8eab7940",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
|
@ -576,6 +658,29 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig-overlay": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils_4",
|
||||
"nixpkgs": [
|
||||
"zls",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712794997,
|
||||
"narHash": "sha256-H1sVVagnlL6xmvSVELGMEAhvJHv4auAY3B97Oi2I8uo=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "9687044a467176bea9e3f0a972143bcbad5dae90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
|
@ -584,11 +689,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712193674,
|
||||
"narHash": "sha256-VNFjRCfTYvWP2UvjA9r/44qrTXZ+JGOVnYSTDSajdeM=",
|
||||
"lastModified": 1712970631,
|
||||
"narHash": "sha256-Y09UxZCzRvvlKEFPfZ8p2xGmnGBi0ocHoAQnQ+Wkuok=",
|
||||
"owner": "Cloudef",
|
||||
"repo": "zig2nix",
|
||||
"rev": "31122d9accecf7d281229bb9e12dedddef120a1f",
|
||||
"rev": "8124e7d607494287b4d88d5d86acb4681265a1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -596,6 +701,30 @@
|
|||
"repo": "zig2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zls": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"gitignore": "gitignore",
|
||||
"langref": "langref",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"zig-overlay": "zig-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713042264,
|
||||
"narHash": "sha256-10CWxJ9xpPZlqthBp/2NMrBXp6epUKAjqvp9Jsjd9Tk=",
|
||||
"owner": "zigtools",
|
||||
"repo": "zls",
|
||||
"rev": "9ba4742982f34bf70c0763f6ebdbae755c64bde5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zigtools",
|
||||
"repo": "zls",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
|
||||
zig2nix.url = "github:Cloudef/zig2nix";
|
||||
zig2nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
zls.url = "github:zigtools/zls";
|
||||
zls.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
f1multiviewer.url = "github:daylinmorgan/f1multiviewer-flake";
|
||||
f1multiviewer.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixConfig = {
|
||||
|
|
|
@ -20,6 +20,7 @@ in {
|
|||
"nim"
|
||||
"tex"
|
||||
"node"
|
||||
"zig"
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
|
@ -25,6 +26,8 @@ in {
|
|||
accents = ["rosewater"];
|
||||
variant = "mocha";
|
||||
})
|
||||
|
||||
inputs.f1multiviewer.outputs.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ mkDefaultOizysModule config "cli" {
|
|||
delta
|
||||
ripgrep
|
||||
|
||||
glow
|
||||
btop
|
||||
inputs.tsm.packages.${pkgs.system}.tsm
|
||||
];
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib) mkOption types literalExpression mdDoc;
|
||||
in {
|
||||
imports = [./nim.nix ./tex.nix ./misc.nix ./node.nix ./python.nix];
|
||||
imports = [./nim.nix ./tex.nix ./misc.nix ./node.nix ./python.nix ./zig.nix];
|
||||
options.oizys.languages = mkOption {
|
||||
type = with types; (listOf str);
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
List of programming languages to enable.
|
||||
'';
|
||||
default = [];
|
||||
|
|
16
modules/languages/zig.nix
Normal file
16
modules/languages/zig.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIfIn;
|
||||
cfg = config.oizys.languages;
|
||||
zig = inputs.zig2nix.outputs.packages.${pkgs.system}.zig.master.bin;
|
||||
zls = inputs.zls.outputs.packages.${pkgs.system}.default;
|
||||
in {
|
||||
config = mkIfIn "zig" cfg {
|
||||
environment.systemPackages = [zig zls];
|
||||
};
|
||||
}
|
|
@ -24,6 +24,7 @@
|
|||
environment.systemPackages = with pkgs; [
|
||||
nil
|
||||
alejandra
|
||||
nixfmt-rfc-style
|
||||
|
||||
self.packages.${pkgs.system}.default
|
||||
inputs.pinix.packages.${pkgs.system}.default
|
||||
|
|
|
@ -3,9 +3,13 @@ const std = @import("std");
|
|||
const yazap = @import("yazap");
|
||||
const App = yazap.App;
|
||||
const Arg = yazap.Arg;
|
||||
|
||||
const Allocator = std.mem.Allocator;
|
||||
|
||||
allocator: Allocator,
|
||||
app: App,
|
||||
matches: *const yazap.ArgMatches = undefined,
|
||||
forward: ?[][]const u8 = null,
|
||||
process_args: ?[]const [:0]u8 = null,
|
||||
|
||||
pub fn init(allocator: Allocator) !Cli {
|
||||
var app = App.init(allocator, "oizys", "nix begat oizys");
|
||||
|
@ -17,19 +21,55 @@ pub fn init(allocator: Allocator) !Cli {
|
|||
var cmd_output = app.createCommand("output", "show system flake output path");
|
||||
var cmd_boot = app.createCommand("boot", "nixos rebuild boot");
|
||||
var cmd_switch = app.createCommand("switch", "nixos rebuild switch");
|
||||
const commands = .{ &cmd_dry, &cmd_build, &cmd_cache, &cmd_output, &cmd_switch, &cmd_boot };
|
||||
|
||||
try cmd_cache.addArg(Arg.singleValueOption("name", 'n', "name of cachix cache"));
|
||||
inline for (commands) |subcmd| {
|
||||
inline for (.{
|
||||
&cmd_dry,
|
||||
&cmd_build,
|
||||
&cmd_cache,
|
||||
&cmd_output,
|
||||
&cmd_switch,
|
||||
&cmd_boot,
|
||||
}) |subcmd| {
|
||||
try subcmd.addArg(Arg.positional("forward", null, null));
|
||||
try subcmd.addArg(Arg.singleValueOption("flake", 'f', "path to flake"));
|
||||
try subcmd.addArg(Arg.singleValueOption("host", null, "hostname (default: current host)"));
|
||||
try subcmd.addArg(Arg.booleanOption("no-pinix", null, "don't use pinix"));
|
||||
try oizys.addSubcommand(subcmd.*);
|
||||
}
|
||||
|
||||
return Cli{ .app = app };
|
||||
return Cli{
|
||||
.allocator = allocator,
|
||||
.app = app,
|
||||
};
|
||||
}
|
||||
|
||||
fn get_forward_args(self: *Cli, args: []const [:0]u8) !usize {
|
||||
var forward = std.ArrayList([]const u8).init(self.allocator);
|
||||
|
||||
const delim_idx: usize = delim_lookup: for (args, 0..) |arg, i| {
|
||||
if (std.mem.eql(u8, "--", arg)) break :delim_lookup i;
|
||||
} else args.len;
|
||||
|
||||
if (args.len > delim_idx)
|
||||
for (args[delim_idx + 1 ..]) |fwd|
|
||||
try forward.append(fwd);
|
||||
|
||||
self.forward = try forward.toOwnedSlice();
|
||||
return delim_idx;
|
||||
}
|
||||
|
||||
pub fn parse(self: *Cli) !void {
|
||||
self.process_args = try std.process.argsAlloc(self.allocator);
|
||||
const delim_idx = try self.get_forward_args(self.process_args.?);
|
||||
self.matches = try self.app.parseFrom(self.process_args.?[1..delim_idx]);
|
||||
}
|
||||
|
||||
pub fn deinit(self: *Cli) void {
|
||||
std.process.argsFree(self.allocator, self.process_args.?);
|
||||
if (self.forward) |fwd| {
|
||||
for (fwd) |arg| self.allocator.free(arg);
|
||||
self.allocator.free(fwd);
|
||||
}
|
||||
self.app.deinit();
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ output: []const u8,
|
|||
cmd: OizysCmd,
|
||||
no_pinix: bool,
|
||||
debug: bool = false,
|
||||
forward: ?[][]const u8,
|
||||
|
||||
pub const OizysCmd = enum {
|
||||
dry,
|
||||
|
@ -21,20 +22,27 @@ pub const OizysCmd = enum {
|
|||
build,
|
||||
};
|
||||
|
||||
pub fn init(allocator: std.mem.Allocator, matches: *const ArgMatches) !Oizys {
|
||||
pub fn init(allocator: std.mem.Allocator, matches: *const ArgMatches, forward: ?[][]const u8) !Oizys {
|
||||
const cmd = matches.subcommand.?.name;
|
||||
const flags = matches.subcommandMatches(cmd).?;
|
||||
const host = flags.getSingleValue("host") orelse try Oizys.getDefaultHostName(allocator);
|
||||
const flake = flags.getSingleValue("flake") orelse try Oizys.getDefaultFlake(allocator);
|
||||
const host = flags.getSingleValue("host") orelse
|
||||
try Oizys.getDefaultHostName(allocator);
|
||||
const flake = flags.getSingleValue("flake") orelse
|
||||
try Oizys.getDefaultFlake(allocator);
|
||||
|
||||
return Oizys{
|
||||
.allocator = allocator,
|
||||
.host = host,
|
||||
.flake = flake,
|
||||
.output = try std.fmt.allocPrint(allocator, "{s}#nixosConfigurations.{s}.config.system.build.toplevel", .{ flake, host }),
|
||||
.output = try std.fmt.allocPrint(
|
||||
allocator,
|
||||
"{s}#nixosConfigurations.{s}.config.system.build.toplevel",
|
||||
.{ flake, host },
|
||||
),
|
||||
.cmd = std.meta.stringToEnum(OizysCmd, cmd).?,
|
||||
.cache_name = flags.getSingleValue("cache") orelse "daylin",
|
||||
.no_pinix = flags.containsArg("no-pinix"),
|
||||
.forward = forward,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -67,7 +75,11 @@ pub fn getDefaultFlake(allocator: Allocator) ![]const u8 {
|
|||
}
|
||||
|
||||
pub fn getOutputPath(self: *Oizys) ![]const u8 {
|
||||
return std.fmt.allocPrint(self.allocator, "{s}#nixosConfigurations.{s}.config.system.build.toplevel", .{ self.flake, self.host });
|
||||
return std.fmt.allocPrint(
|
||||
self.allocator,
|
||||
"{s}#nixosConfigurations.{s}.config.system.build.toplevel",
|
||||
.{ self.flake, self.host },
|
||||
);
|
||||
}
|
||||
|
||||
pub const NixCmd = enum { Nix, NixosRebuild };
|
||||
|
@ -81,12 +93,27 @@ pub fn runNixCmd(self: *Oizys, cmd: NixCmd, argv: []const []const u8) !void {
|
|||
NixCmd.NixosRebuild => try args.appendSlice(&.{ "sudo", self.nixos_rebuild() }),
|
||||
}
|
||||
try args.appendSlice(argv);
|
||||
if (self.forward) |fwd| try args.appendSlice(fwd);
|
||||
var p = std.ChildProcess.init(args.items, self.allocator);
|
||||
_ = try p.spawnAndWait();
|
||||
}
|
||||
|
||||
pub fn cache(self: *Oizys) !void {
|
||||
var p = std.ChildProcess.init(&.{ "cachix", "watch-exec", self.cache_name, "--verbose", "--", "nix", "build", self.flake, "--print-build-logs", "--accept-flake-config" }, self.allocator);
|
||||
var p = std.ChildProcess.init(
|
||||
&.{
|
||||
"cachix",
|
||||
"watch-exec",
|
||||
self.cache_name,
|
||||
"--verbose",
|
||||
"--",
|
||||
"nix",
|
||||
"build",
|
||||
self.output,
|
||||
"--print-build-logs",
|
||||
"--accept-flake-config",
|
||||
},
|
||||
self.allocator,
|
||||
);
|
||||
_ = try p.spawnAndWait();
|
||||
}
|
||||
|
||||
|
@ -105,7 +132,8 @@ pub fn run(self: *Oizys) !void {
|
|||
try self.runNixCmd(NixCmd.Nix, &.{ "build", self.output });
|
||||
},
|
||||
.output => {
|
||||
std.debug.print("{s}", .{self.output});
|
||||
const stdout = std.io.getStdOut().writer();
|
||||
try stdout.print("{s}\n", .{self.output});
|
||||
},
|
||||
.cache => {
|
||||
try self.cache();
|
||||
|
|
|
@ -9,14 +9,16 @@ pub fn main() !void {
|
|||
const allocator = arena.allocator();
|
||||
|
||||
var cli = try Cli.init(allocator);
|
||||
const matches = try cli.app.parseProcess();
|
||||
try cli.parse();
|
||||
defer cli.deinit();
|
||||
|
||||
if (!matches.containsArgs()) {
|
||||
if (!cli.matches.containsArgs()) {
|
||||
try cli.app.displayHelp();
|
||||
return;
|
||||
}
|
||||
|
||||
var oizys = try Oizys.init(allocator, matches);
|
||||
var oizys = try Oizys.init(allocator, cli.matches, cli.forward);
|
||||
defer oizys.deinit();
|
||||
try oizys.run();
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue