fix flake

This commit is contained in:
Mona Mayrhofer 2026-03-07 18:33:15 +01:00
parent 8664f9d210
commit 201f0e5f0a
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 374AB152BDEBA1AE
26 changed files with 536 additions and 2343 deletions

View file

@ -1,19 +0,0 @@
#!/usr/bin/env bash
set -e
if [[ ! -d "/home/nionidh/projects/rust-tomfoolery/cursor-mover-app" ]]; then
echo "Cannot find source directory; Did you move it?"
echo "(Looking for "/home/nionidh/projects/rust-tomfoolery/cursor-mover-app")"
echo 'Cannot force reload with this script - use "direnv reload" manually and then try again'
exit 1
fi
# rebuild the cache forcefully
_nix_direnv_force_reload=1 direnv exec "/home/nionidh/projects/rust-tomfoolery/cursor-mover-app" true
# Update the mtime for .envrc.
# This will cause direnv to reload again - but without re-building.
touch "/home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.envrc"
# Also update the timestamp of whatever profile_rc we have.
# This makes sure that we know we are up to date.
touch -r "/home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.envrc" "/home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.direnv"/*.rc

View file

@ -1 +0,0 @@
/nix/store/12rd2bk68yfdn66pzcnwkgcyxf28y2fq-source

View file

@ -1 +0,0 @@
/nix/store/2a9ylipb88x2sp2xn6cg58p5xm6qamai-source

View file

@ -1 +0,0 @@
/nix/store/41f1cpnv29cwhhf9y41a1q0757v8phl3-source

View file

@ -1 +0,0 @@
/nix/store/5wsbaidxzywizpm8ywrkl14qy125d566-source

View file

@ -1 +0,0 @@
/nix/store/7a4jq2c49dwdqxb2b9fd5har64gkxd9w-source

View file

@ -1 +0,0 @@
/nix/store/bmvmvrckk4vz1kmr9prig8prmc09c9yq-source

View file

@ -1 +0,0 @@
/nix/store/bnswhsxlbaf17xfsacm6xbj23g7g9j5b-source

View file

@ -1 +0,0 @@
/nix/store/bpq48947cigxsm1y1qzz3jxgka63a2dd-source

View file

@ -1 +0,0 @@
/nix/store/d8j9587fki8g877fjwm5a1l29f29xckm-source

View file

@ -1 +0,0 @@
/nix/store/dj66bmh6cjl4pbw0aw50iiz631xdc4z9-source

View file

@ -1 +0,0 @@
/nix/store/dq57cg11cdy3rg7jwxh25c02jdi7mzq8-source

View file

@ -1 +0,0 @@
/nix/store/fhapivckp1hrf0cn2bsr8cv5f98c2skb-source

View file

@ -1 +0,0 @@
/nix/store/fxlr459mkipn4j7ff86h7z21zyiwxs62-source

View file

@ -1 +0,0 @@
/nix/store/g5v3sgqy6a0fsmas7mnapc196flrplix-source

View file

@ -1 +0,0 @@
/nix/store/gs1d4570bffhpg2704yb26p49fzgg343-source

View file

@ -1 +0,0 @@
/nix/store/m0m72b7nj91pfyfbblzhi7k7c2cxpb6b-source

View file

@ -1 +0,0 @@
/nix/store/p4l9q189cgldga9f1051fhfllfzmk4c5-source

View file

@ -1 +0,0 @@
/nix/store/sy3ism981f9xcbcmdc7gbk0yz28w6yjz-source

View file

@ -1 +0,0 @@
/nix/store/vwwbg9chin0hq0snddfn0swzdi7frgia-source

View file

@ -1 +0,0 @@
/nix/store/x8ymj8dbvyzhj0vpgga2plzdgmar3bb0-source

View file

@ -1 +0,0 @@
/nix/store/4kycd6brixc98xkpd97bz3yx8ln96f08-my-project-env

3
.gitignore vendored
View file

@ -1,7 +1,8 @@
.devenv
.devenv
.direnv
# Added by cargo
/target
result

421
flake.lock generated Normal file
View file

@ -0,0 +1,421 @@
{
"nodes": {
"cachix": {
"inputs": {
"devenv": [
"devenv"
],
"flake-compat": [
"devenv",
"flake-compat"
],
"git-hooks": [
"devenv",
"git-hooks"
],
"nixpkgs": [
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1760971495,
"narHash": "sha256-IwnNtbNVrlZIHh7h4Wz6VP0Furxg9Hh0ycighvL5cZc=",
"owner": "cachix",
"repo": "cachix",
"rev": "c5bfd933d1033672f51a863c47303fc0e093c2d2",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "latest",
"repo": "cachix",
"type": "github"
}
},
"devenv": {
"inputs": {
"cachix": "cachix",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"nix": "nix",
"nixd": "nixd",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1772561312,
"narHash": "sha256-NfAIfTNeZylb3hHdDGfuEufF0wgrzICU9VvsxWymOSM=",
"owner": "cachix",
"repo": "devenv",
"rev": "222bd22a9283281239059b8663f3de7228d14cf8",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"devenv-root": {
"flake": false,
"locked": {
"narHash": "sha256-d6xi4mKdjkX2JFicDIv5niSzpyI0m/Hnm8GGAIU04kY=",
"type": "file",
"url": "file:///dev/null"
},
"original": {
"type": "file",
"url": "file:///dev/null"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1772348640,
"narHash": "sha256-caiKs7O4khFydpKyg8O8/nmvw/NfN4fn/4spageGoig=",
"owner": "nix-community",
"repo": "fenix",
"rev": "47c5355eaba0b08836e720d5d545c8ea1e1783db",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "monthly",
"repo": "fenix",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1760948891,
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-root": {
"locked": {
"lastModified": 1723604017,
"narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=",
"owner": "srid",
"repo": "flake-root",
"rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"devenv",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1760663237,
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"devenv",
"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"
}
},
"mk-shell-bin": {
"locked": {
"lastModified": 1677004959,
"narHash": "sha256-/uEkr1UkJrh11vD02aqufCxtbF5YnhRTIKlx5kyvf+I=",
"owner": "rrbutani",
"repo": "nix-mk-shell-bin",
"rev": "ff5d8bd4d68a347be5042e2f16caee391cd75887",
"type": "github"
},
"original": {
"owner": "rrbutani",
"repo": "nix-mk-shell-bin",
"type": "github"
}
},
"nix": {
"inputs": {
"flake-compat": [
"devenv",
"flake-compat"
],
"flake-parts": [
"devenv",
"flake-parts"
],
"git-hooks-nix": [
"devenv",
"git-hooks"
],
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-23-11": [
"devenv"
],
"nixpkgs-regression": [
"devenv"
]
},
"locked": {
"lastModified": 1771532737,
"narHash": "sha256-H26FQmOyvIGnedfAioparJQD8Oe+/byD6OpUpnI/hkE=",
"owner": "cachix",
"repo": "nix",
"rev": "7eb6c427c7a86fdc3ebf9e6cbf2a84e80e8974fd",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "devenv-2.32",
"repo": "nix",
"type": "github"
}
},
"nix2container": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1767430085,
"narHash": "sha256-SiXJ6xv4pS2MDUqfj0/mmG746cGeJrMQGmoFgHLS25Y=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "66f4b8a47e92aa744ec43acbb5e9185078983909",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixd": {
"inputs": {
"flake-parts": [
"devenv",
"flake-parts"
],
"flake-root": "flake-root",
"nixpkgs": [
"devenv",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1763964548,
"narHash": "sha256-JTRoaEWvPsVIMFJWeS4G2isPo15wqXY/otsiHPN0zww=",
"owner": "nix-community",
"repo": "nixd",
"rev": "d4bf15e56540422e2acc7bc26b20b0a0934e3f5e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixd",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1761313199,
"narHash": "sha256-wCIACXbNtXAlwvQUo1Ed++loFALPjYUA3dpcUJiXO44=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "d1c30452ebecfc55185ae6d1c983c09da0c274ff",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "rolling",
"repo": "devenv-nixpkgs",
"type": "github"
}
},
"nixpkgs-src": {
"flake": false,
"locked": {
"lastModified": 1769922788,
"narHash": "sha256-H3AfG4ObMDTkTJYkd8cz1/RbY9LatN5Mk4UF48VuSXc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "207d15f1a6603226e1e223dc79ac29c7846da32e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"inputs": {
"nixpkgs-src": "nixpkgs-src"
},
"locked": {
"lastModified": 1770434727,
"narHash": "sha256-YzOZRgiqIccnkkZvckQha7wvOfN2z50xEdPvfgu6sf8=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "8430f16a39c27bdeef236f1eeb56f0b51b33d348",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "rolling",
"repo": "devenv-nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"devenv-root": "devenv-root",
"fenix": "fenix",
"flake-parts": "flake-parts_2",
"mk-shell-bin": "mk-shell-bin",
"nix2container": "nix2container",
"nixpkgs": "nixpkgs_2"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1772310333,
"narHash": "sha256-njFwHnxYcfQINwSa+XWhenv8s8PMg/j5ID0HpIa49xM=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "a96b6a9b887008bae01839543f9ca8e1f67f4ebe",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"devenv",
"nixd",
"nixpkgs"
]
},
"locked": {
"lastModified": 1734704479,
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

188
flake.nix
View file

@ -46,95 +46,133 @@
perSystem =
{
#config,
#self',
self',
inputs',
pkgs,
#system,
...
}:
{
devenv.shells.default =
let
fnx = inputs'.fenix.packages;
rustToolchain = fnx.combine [
fnx.complete.cargo
fnx.complete.clippy
fnx.complete.rust-src
fnx.complete.rustc
fnx.complete.rustfmt
fnx.targets.wasm32-unknown-unknown.latest.rust-std
];
let
fnx = inputs'.fenix.packages;
rustToolchain = fnx.combine [
fnx.complete.cargo
fnx.complete.clippy
fnx.complete.rust-src
fnx.complete.rustc
fnx.complete.rustfmt
fnx.targets.wasm32-unknown-unknown.latest.rust-std
];
wasmBindgen =
with pkgs;
rustPlatform.buildRustPackage rec {
pname = "wasm-bindgen-cli";
version = "0.2.114";
wasmBindgen =
with pkgs;
rustPlatform.buildRustPackage rec {
pname = "wasm-bindgen-cli";
version = "0.2.114";
src = fetchCrate {
pname = pname;
version = version;
hash = "sha256-xrCym+rFY6EUQFWyWl6OPA+LtftpUAE5pIaElAIVqW0=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
inherit (src) pname version;
hash = "sha256-Z8+dUXPQq7S+Q7DWNr2Y9d8GMuEdSnq00quUR0wDNPM=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
curl
];
nativeCheckInputs = [ nodejs_latest ];
# tests require it to be ran in the wasm-bindgen monorepo
doCheck = false;
};
in
{
name = "my-project";
env = {
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
src = fetchCrate {
pname = pname;
version = version;
hash = "sha256-xrCym+rFY6EUQFWyWl6OPA+LtftpUAE5pIaElAIVqW0=";
};
packages = [
pkgs.dioxus-cli
pkgs.cargo-expand
pkgs.cargo-deny
pkgs.cargo-nextest
pkgs.typos
pkgs.binaryen # wasm-opt
rustToolchain
fnx.rust-analyzer
wasmBindgen
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
inherit (src) pname version;
hash = "sha256-Z8+dUXPQq7S+Q7DWNr2Y9d8GMuEdSnq00quUR0wDNPM=";
};
pkgs.libxkbcommon
nativeBuildInputs = [ pkg-config ];
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
curl
];
scripts.checkall.exec = ''
set -xeuo pipefail
nativeCheckInputs = [ nodejs_latest ];
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo deny check all -D warnings
cargo fmt --all -- --check
cargo nextest run --workspace --all-targets --all-features --status-level all --no-tests warn
# TODO Doctests
echo "==== checkall success ===="
'';
# DO NOT ENABLE RUST because devenv messes up the ability
# to build rust-src
# languages.rust = {};
# tests require it to be ran in the wasm-bindgen monorepo
doCheck = false;
};
in
{
packages.default = self'.packages.cursor-mover-app;
packages.cursor-mover-app =
(pkgs.makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
}).buildRustPackage
{
pname = "cursor-mover-app";
version = "0.1.0";
src = ./.;
nativeBuildInputs = with pkgs; [
wasmBindgen
binaryen
dioxus-cli
breakpointHook
makeWrapper
];
buildPhase = ''
dx bundle --debug-symbols=false --release --web --package cursor-move-webapp
'';
checkPhase = "";
installPhase = "
mkdir -p $out/bin
mkdir -p $out/share
cp -r target/dx/cursor-move-webapp/release/web $out/share/web
makeWrapper $out/share/web/cursor-move-webapp $out/bin/cursor-move-app --chdir $out/share/web
";
cargoLock.lockFile = ./Cargo.lock;
};
devenv.shells.default = {
name = "my-project";
env = {
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
};
packages = [
pkgs.dioxus-cli
pkgs.cargo-expand
pkgs.cargo-deny
pkgs.cargo-nextest
pkgs.typos
pkgs.binaryen # wasm-opt
rustToolchain
fnx.rust-analyzer
wasmBindgen
pkgs.libxkbcommon
];
scripts.checkall.exec = ''
set -xeuo pipefail
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo deny check all -D warnings
cargo fmt --all -- --check
cargo nextest run --workspace --all-targets --all-features --status-level all --no-tests warn
# TODO Doctests
echo "==== checkall success ===="
'';
# DO NOT ENABLE RUST because devenv messes up the ability
# to build rust-src
# languages.rust = {};
};
};
flake = { };