summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMica White <botahamec@outlook.com>2026-08-25 21:15:52 -0400
committerMica White <botahamec@outlook.com>2026-08-25 21:15:52 -0400
commit3b1549699693504382d9162d2bb1a73ac1eeccd9 (patch)
treecb194aaa0e460822c4f5b1cb253b54a1226bf153
parent25556174f5603b65155a2e13d15a666a8fcee597 (diff)
Add devenv
-rw-r--r--.gitignore11
-rw-r--r--devenv.lock364
-rw-r--r--devenv.nix35
-rw-r--r--devenv.yaml19
4 files changed, 429 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index ea8c4bf..0201000 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,12 @@
/target
+
+# Devenv
+.devenv*
+devenv.local.nix
+devenv.local.yaml
+
+# direnv
+.direnv
+
+# pre-commit
+.pre-commit-config.yaml
diff --git a/devenv.lock b/devenv.lock
new file mode 100644
index 0000000..3561944
--- /dev/null
+++ b/devenv.lock
@@ -0,0 +1,364 @@
+{
+ "nodes": {
+ "cachix": {
+ "inputs": {
+ "devenv": [
+ "crate2nix"
+ ],
+ "flake-compat": [
+ "crate2nix"
+ ],
+ "git-hooks": "git-hooks",
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1767714506,
+ "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=",
+ "owner": "cachix",
+ "repo": "cachix",
+ "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "ref": "latest",
+ "repo": "cachix",
+ "type": "github"
+ }
+ },
+ "crate2nix": {
+ "inputs": {
+ "cachix": "cachix",
+ "devshell": "devshell",
+ "flake-compat": "flake-compat",
+ "flake-parts": "flake-parts",
+ "nix-test-runner": "nix-test-runner",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "pre-commit-hooks": "pre-commit-hooks"
+ },
+ "locked": {
+ "lastModified": 1782759041,
+ "narHash": "sha256-2577vxyoBa8+ZRiXr3CuPtOuEtPRYsFPSZuEc/KI/80=",
+ "owner": "nix-community",
+ "repo": "crate2nix",
+ "rev": "5e1ecfd2d15b34ec90c2e51fdffbe8116595a767",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "crate2nix",
+ "type": "github"
+ }
+ },
+ "devenv": {
+ "locked": {
+ "dir": "src/modules",
+ "lastModified": 1787701230,
+ "narHash": "sha256-NoUkZGOvL+LFZ0d7k9f6RS7FHEE5z0FwzWek8EaPcnM=",
+ "owner": "cachix",
+ "repo": "devenv",
+ "rev": "8ec71f695e5c8236c1d87ca75577462e2c0e007c",
+ "type": "github"
+ },
+ "original": {
+ "dir": "src/modules",
+ "owner": "cachix",
+ "repo": "devenv",
+ "type": "github"
+ }
+ },
+ "devshell": {
+ "inputs": {
+ "nixpkgs": [
+ "crate2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1768818222,
+ "narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=",
+ "owner": "numtide",
+ "repo": "devshell",
+ "rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "devshell",
+ "type": "github"
+ }
+ },
+ "flake-compat": {
+ "locked": {
+ "lastModified": 1733328505,
+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "revCount": 69,
+ "type": "tarball",
+ "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
+ }
+ },
+ "flake-compat_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1767039857,
+ "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
+ "owner": "NixOS",
+ "repo": "flake-compat",
+ "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "crate2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1768135262,
+ "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "git-hooks": {
+ "inputs": {
+ "flake-compat": [
+ "crate2nix",
+ "cachix",
+ "flake-compat"
+ ],
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "crate2nix",
+ "cachix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1765404074,
+ "narHash": "sha256-+ZDU2d+vzWkEJiqprvV5PR26DVFN2vgddwG5SnPZcUM=",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "2d6f58930fbcd82f6f9fd59fb6d13e37684ca529",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "type": "github"
+ }
+ },
+ "git-hooks_2": {
+ "inputs": {
+ "flake-compat": "flake-compat_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1787424939,
+ "narHash": "sha256-O2tBn84NNuHrnqNVxx/XqsXwfYvS1YwBh+7CBnbCYsk=",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "809414f0cdadf82cf11b06c2b29ba9b3168b3297",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "type": "github"
+ }
+ },
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "crate2nix",
+ "cachix",
+ "git-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"
+ }
+ },
+ "gitignore_2": {
+ "inputs": {
+ "nixpkgs": [
+ "crate2nix",
+ "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"
+ }
+ },
+ "nix-test-runner": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1588761593,
+ "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=",
+ "owner": "stoeffel",
+ "repo": "nix-test-runner",
+ "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "stoeffel",
+ "repo": "nix-test-runner",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1765186076,
+ "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-src": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1786858016,
+ "narHash": "sha256-Vczr2zxD0orq6N2QQe5uqOGF7TRDcQJRRuAcsdHr4kg=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "54ba4bcec4043e72a4006d825e0d7aff5562008f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "inputs": {
+ "nixpkgs-src": "nixpkgs-src"
+ },
+ "locked": {
+ "lastModified": 1787002832,
+ "narHash": "sha256-DGkHh88/7YLVGZ7HzSVN4YmUmR+wGKudIp6H9UsUNT0=",
+ "owner": "cachix",
+ "repo": "devenv-nixpkgs",
+ "rev": "ee3d58d53cfcddfc0ae6fc7f04f4fe2a0c7cf0ed",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "ref": "rolling",
+ "repo": "devenv-nixpkgs",
+ "type": "github"
+ }
+ },
+ "pre-commit-hooks": {
+ "inputs": {
+ "flake-compat": [
+ "crate2nix",
+ "flake-compat"
+ ],
+ "gitignore": "gitignore_2",
+ "nixpkgs": [
+ "crate2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1769069492,
+ "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=",
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "crate2nix": "crate2nix",
+ "devenv": "devenv",
+ "git-hooks": "git-hooks_2",
+ "nixpkgs": "nixpkgs_2",
+ "rust-overlay": "rust-overlay"
+ }
+ },
+ "rust-overlay": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1787627053,
+ "narHash": "sha256-QdVaU2WSCKsxZ0sBDIRnaaukp6Z5IMUE0gDEDoSRJd0=",
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "rev": "132a10336af9ae819bdf640c0dd1c789b12d7107",
+ "type": "github"
+ },
+ "original": {
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+} \ No newline at end of file
diff --git a/devenv.nix b/devenv.nix
new file mode 100644
index 0000000..04cf216
--- /dev/null
+++ b/devenv.nix
@@ -0,0 +1,35 @@
+{ pkgs, config, ... }:
+
+let
+ feluments = config.languages.rust.import ./. { };
+in
+{
+ delta.enable = true;
+
+ languages.rust = {
+ enable = true;
+ components = [ "rustc" "rust-analyzer" "cargo" "rustfmt" "clippy" ];
+ };
+ packages = with pkgs; [
+ git
+ bacon
+ cargo-seek
+ cargo-nextest
+ ];
+ scripts.watcher = {
+ exec = ''
+ watchexec -c -e rs "cargo clippy && cargo test && cargo run"
+ '';
+ packages = [ pkgs.watchexec ];
+ };
+ enterShell = ''
+ cargo update
+ '';
+ git-hooks.hooks = {
+ rustfmt.enable = true;
+ clippy.enable = true;
+ };
+ outputs = {
+ inherit feluments;
+ };
+}
diff --git a/devenv.yaml b/devenv.yaml
new file mode 100644
index 0000000..543b514
--- /dev/null
+++ b/devenv.yaml
@@ -0,0 +1,19 @@
+# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
+inputs:
+ nixpkgs:
+ url: github:cachix/devenv-nixpkgs/rolling
+ git-hooks:
+ url: github:cachix/git-hooks.nix
+ inputs:
+ nixpkgs:
+ follows: nixpkgs
+ rust-overlay:
+ url: github:oxalica/rust-overlay
+ inputs:
+ nixpkgs:
+ follows: nixpkgs
+ crate2nix:
+ url: github:nix-community/crate2nix
+ inputs:
+ nixpkgs:
+ follows: nixpkgs