From 5d9c945dc5584a804ecad88270acb32ce8b14f9c Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Wed, 12 Jun 2024 10:42:18 -0500 Subject: [PATCH] roc is cool --- flake.lock | 132 ++++++++++++++++++++++++++++++++-- flake.nix | 6 +- hosts/othalan/default.nix | 1 + modules/languages/default.nix | 16 ++--- modules/languages/roc.nix | 20 ++++++ 5 files changed, 159 insertions(+), 16 deletions(-) create mode 100644 modules/languages/roc.nix diff --git a/flake.lock b/flake.lock index ec43038..2e663b1 100644 --- a/flake.lock +++ b/flake.lock @@ -65,6 +65,22 @@ "type": "github" } }, + "flake-compat_4": { + "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-parts": { "inputs": { "nixpkgs-lib": [ @@ -181,6 +197,24 @@ "inputs": { "systems": "systems_7" }, + "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_7": { + "inputs": { + "systems": "systems_8" + }, "locked": { "lastModified": 1705309234, "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", @@ -534,6 +568,31 @@ "type": "github" } }, + "nixgl": { + "inputs": { + "flake-utils": [ + "roc", + "flake-utils" + ], + "nixpkgs": [ + "roc", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1710868679, + "narHash": "sha256-V1o2bCZdeYKP/0zgVp4EN0KUjMItAMk6J7SvCXUI5IU=", + "owner": "guibou", + "repo": "nixGL", + "rev": "d709a8abcde5b01db76ca794280745a43c8662be", + "type": "github" + }, + "original": { + "owner": "guibou", + "repo": "nixGL", + "type": "github" + } + }, "nixos-wsl": { "inputs": { "flake-compat": "flake-compat", @@ -770,6 +829,30 @@ "type": "github" } }, + "roc": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_4", + "nixgl": "nixgl", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1718174411, + "narHash": "sha256-rEJ/ElZyAHeS6kX8yVoqfM/s+vyCdOUJZbkueujfSzY=", + "owner": "roc-lang", + "repo": "roc", + "rev": "a6f1408b5c97e2f5eb3b62b0b481b6a29c958e83", + "type": "github" + }, + "original": { + "owner": "roc-lang", + "repo": "roc", + "type": "github" + } + }, "root": { "inputs": { "f1multiviewer": "f1multiviewer", @@ -783,12 +866,38 @@ "nixpkgs": "nixpkgs_6", "nixpkgs-wayland": "nixpkgs-wayland", "pixi": "pixi", + "roc": "roc", "stable": "stable", "tsm": "tsm", "zig2nix": "zig2nix", "zls": "zls" } }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "roc", + "flake-utils" + ], + "nixpkgs": [ + "roc", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712369449, + "narHash": "sha256-tbWug3uXPlSm1j0xD80Y3xbP+otT6gLnQo1e/vQat48=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "41b3b080cc3e4b3a48e933b87fc15a05f1870779", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "stable": { "locked": { "lastModified": 1717880976, @@ -910,6 +1019,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": [ @@ -986,8 +1110,8 @@ }, "zig-overlay": { "inputs": { - "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_6", + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_7", "nixpkgs": [ "zls", "nixpkgs" @@ -1009,7 +1133,7 @@ }, "zig2nix": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_5", "nixpkgs": [ "nixpkgs" ] @@ -1030,7 +1154,7 @@ }, "zls": { "inputs": { - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_6", "gitignore": "gitignore", "langref": "langref", "nixpkgs": [ diff --git a/flake.nix b/flake.nix index a91302d..5b58b0c 100644 --- a/flake.nix +++ b/flake.nix @@ -28,16 +28,16 @@ zig2nix.url = "github:Cloudef/zig2nix"; zig2nix.inputs.nixpkgs.follows = "nixpkgs"; - zls.url = "github:zigtools/zls"; zls.inputs.nixpkgs.follows = "nixpkgs"; + roc.url = "github:roc-lang/roc"; + roc.inputs.nixpkgs.follows = "nixpkgs"; + tsm.url = "github:daylinmorgan/tsm?dir=nix"; tsm.inputs.nixpkgs.follows = "nixpkgs"; - hyprman.url = "git+https://git.dayl.in/daylin/hyprman.git"; hyprman.inputs.nixpkgs.follows = "nixpkgs"; - f1multiviewer.url = "github:daylinmorgan/f1multiviewer-flake"; pixi.url = "github:daylinmorgan/pixi-flake"; }; diff --git a/hosts/othalan/default.nix b/hosts/othalan/default.nix index b696208..ceac7e2 100644 --- a/hosts/othalan/default.nix +++ b/hosts/othalan/default.nix @@ -15,6 +15,7 @@ "node" "nushell" "python" + "roc" "tex" "zig" ]; diff --git a/modules/languages/default.nix b/modules/languages/default.nix index 18db2b6..713ddc8 100644 --- a/modules/languages/default.nix +++ b/modules/languages/default.nix @@ -1,22 +1,20 @@ { lib, ... }: let + inherit (builtins) + filter; inherit (lib) + isNixFile mkOption types literalExpression mdDoc ; + inherit (lib.filesystem) + listFilesRecursive; in { - imports = [ - ./misc.nix - ./nim.nix - ./node.nix - ./nushell.nix - ./python.nix - ./tex.nix - ./zig.nix - ]; + imports = filter (f: (f != ./default.nix) && (isNixFile f)) (listFilesRecursive ./.); + options.oizys.languages = mkOption { type = with types; (listOf str); description = mdDoc '' diff --git a/modules/languages/roc.nix b/modules/languages/roc.nix new file mode 100644 index 0000000..29a3d80 --- /dev/null +++ b/modules/languages/roc.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: +let + inherit (lib) mkIfIn; + cfg = config.oizys.languages; + rocPkgs = inputs.roc.packages.${pkgs.system}; +in +{ + config = mkIfIn "roc" cfg { + environment.systemPackages = with rocPkgs; [ + full + lang-server + ]; + }; +}