← back to Exo
nix cleanup
b1721e941bb94c6438e2dc155d1fca7495aa613d · 2025-10-01 09:47:00 +0100 · Evan Quiney
Files touched
M .envrcM .gitignoreM flake.lockM flake.nixM justfileD nix/modules/flake-root.nixD nix/modules/go-forwarder.nixD nix/modules/just-flake.nixD nix/modules/macmon.nixD nix/modules/pkgs-init.nixD nix/modules/python.nixD nix/modules/rust.nix
Diff
commit b1721e941bb94c6438e2dc155d1fca7495aa613d
Author: Evan Quiney <evanev7@gmail.com>
Date: Wed Oct 1 09:47:00 2025 +0100
nix cleanup
---
.envrc | 1 -
.gitignore | 3 -
flake.lock | 104 +++++++++--------------------------
flake.nix | 128 +++++++++++++++++--------------------------
justfile | 38 -------------
nix/modules/flake-root.nix | 20 -------
nix/modules/go-forwarder.nix | 19 -------
nix/modules/just-flake.nix | 26 ---------
nix/modules/macmon.nix | 12 ----
nix/modules/pkgs-init.nix | 62 ---------------------
nix/modules/python.nix | 20 -------
nix/modules/rust.nix | 25 ---------
12 files changed, 76 insertions(+), 382 deletions(-)
diff --git a/.envrc b/.envrc
index 613b6c8d..3550a30f 100644
--- a/.envrc
+++ b/.envrc
@@ -1,2 +1 @@
use flake
-# eval "$shellHook" # https://github.com/nix-community/nix-direnv/issues/109#issuecomment-992514426
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 12a0aec4..9f5c195a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,8 +16,5 @@ dist/
.DS_Store
*/.DS_Store
-# Says this symlink should be git-ignored https://github.com/juspay/just-flake
-just-flake.just
-
# for the gitingest enthusiasts
digest.txt
diff --git a/flake.lock b/flake.lock
index 35076eff..8559ca9e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -21,87 +21,21 @@
"type": "github"
}
},
- "flake-compat": {
- "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": {
+ "flake-utils": {
"inputs": {
- "nixpkgs-lib": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1754487366,
- "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
- "type": "github"
+ "systems": "systems"
},
- "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",
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
- "owner": "srid",
- "repo": "flake-root",
- "type": "github"
- }
- },
- "just-flake": {
- "locked": {
- "lastModified": 1713316411,
- "narHash": "sha256-NkJfU6H+6vgHkPtZ2ESbZ/h2wnsDQrZvB4vbdUIBx8Q=",
- "owner": "juspay",
- "repo": "just-flake",
- "rev": "0e33952a4bcd16cd54ee3aba8111606c237d4526",
- "type": "github"
- },
- "original": {
- "owner": "juspay",
- "repo": "just-flake",
- "type": "github"
- }
- },
- "make-shell": {
- "inputs": {
- "flake-compat": "flake-compat"
- },
- "locked": {
- "lastModified": 1733933815,
- "narHash": "sha256-9JjM7eT66W4NJAXpGUsdyAFXhBxFWR2Z9LZwUa7Hli0=",
- "owner": "nicknovitski",
- "repo": "make-shell",
- "rev": "ffeceae9956df03571ea8e96ef77c2924f13a63c",
- "type": "github"
- },
- "original": {
- "owner": "nicknovitski",
- "repo": "make-shell",
+ "owner": "numtide",
+ "repo": "flake-utils",
"type": "github"
}
},
@@ -124,10 +58,7 @@
"root": {
"inputs": {
"fenix": "fenix",
- "flake-parts": "flake-parts",
- "flake-root": "flake-root",
- "just-flake": "just-flake",
- "make-shell": "make-shell",
+ "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
@@ -147,6 +78,21 @@
"repo": "rust-analyzer",
"type": "github"
}
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index b1f69a86..118fb97f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,24 +3,7 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
-
- # Use flake-parts for modular configs
- flake-parts = {
- url = "github:hercules-ci/flake-parts";
- inputs.nixpkgs-lib.follows = "nixpkgs";
- };
-
- # Flake-parts wrapper for mkShell
- make-shell.url = "github:nicknovitski/make-shell";
-
- # Provides path to project root with:
- # 1. ${lib.getExe config.flake-root.package}
- # 2. $FLAKE_ROOT environment-varible
- flake-root.url = "github:srid/flake-root";
-
- # Provides flake integration with [Just](https://just.systems/man/en/)
- just-flake.url = "github:juspay/just-flake";
-
+ flake-utils.url = "github:numtide/flake-utils";
# Provides Rust dev-env integration:
fenix = {
url = "github:nix-community/fenix";
@@ -36,70 +19,61 @@
# };
outputs =
- inputs@{
- flake-parts,
- ...
- }:
- flake-parts.lib.mkFlake { inherit inputs; } (
- { flake-parts-lib, self, ... }:
+ inputs:
+ let
+ systems = [
+ "x86_64-linux"
+ "aarch64-darwin"
+ ];
+ in
+ inputs.flake-utils.lib.eachSystem systems (
+ system:
+ let
+ pkgs = import inputs.nixpkgs {
+ inherit system;
+ overlays = [ inputs.fenix.overlays.default ];
+ };
+ in
{
- imports = [
- inputs.make-shell.flakeModules.default
-
- ./nix/modules/pkgs-init.nix # nixpkgs overlays manager
- ./nix/modules/flake-root.nix
- ./nix/modules/just-flake.nix
- ./nix/modules/macmon.nix
- ./nix/modules/python.nix
- ./nix/modules/rust.nix
- ./nix/modules/go-forwarder.nix
- ];
- systems = [
- "x86_64-linux"
- "aarch64-darwin"
- ];
- perSystem =
- {
- config,
- self',
- inputs',
- pkgs,
- system,
- ...
- }:
- {
- # Per-system attributes can be defined here. The self' and inputs'
- # module parameters provide easy access to attributes of the same
- # system.
- # NOTE: pkgs is equivalent to inputs'.nixpkgs.legacyPackages.hello;
- apps = { };
-
- make-shells.default = {
- packages = [
- pkgs.protobuf
- ];
+ devShells.default = pkgs.mkShell {
+ packages =
+ with pkgs;
+ [
+ # PYTHON
+ python313
+ uv
+ ruff
+ basedpyright
- nativeBuildInputs = with pkgs; [
- nixpkgs-fmt
- ];
+ # RUST
+ (fenix.complete.withComponents [
+ "cargo"
+ "rustc"
+ "clippy"
+ "rustfmt"
+ "rust-src"
+ ])
+ rustup # Just here to make RustRover happy
- shellHook = ''
- export GO_BUILD_DIR=$(git rev-parse --show-toplevel)/build;
- export DASHBOARD_DIR=$(git rev-parse --show-toplevel)/dashboard;
- '';
+ # NIX
+ nixpkgs-fmt
+ ]
+ ++ (pkgs.lib.optionals pkgs.stdenv.isDarwin [
+ # MACMON
+ macmon
- # Arguments which are intended to be environment variables in the shell environment
- # should be changed to attributes of the `env` option
- env = { };
+ # JUST
+ just
+ ]);
- # Arbitrary mkDerivation arguments should be changed to be attributes of the `additionalArguments` option
- additionalArguments = { };
- };
- };
- flake = {
- # The usual flake attributes can be defined here, including system-
- # agnostic ones like nixosModule and system-enumerating ones, although
- # those are more easily expressed in perSystem.
+ shellHook = ''
+ # PYTHON
+ export DASHBOARD_DIR=$(git rev-parse --show-toplevel)/dashboard;
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${pkgs.python313}/lib
+ echo
+ echo "🍎🍎 Run 'just <recipe>' to get started"
+ just --list
+ '';
};
}
diff --git a/justfile b/justfile
index 1b84e2eb..98392578 100644
--- a/justfile
+++ b/justfile
@@ -1,17 +1,9 @@
-import 'just-flake.just'
-
-default:
- @just --list
-
fmt:
uv run ruff format src
lint:
uv run ruff check --fix src
-lint-check:
- uv run ruff check src
-
test:
uv run pytest src
@@ -23,33 +15,3 @@ sync:
sync-clean:
uv sync --all-packages --force-reinstall --no-cache
-
-build:
- uv build --all-packages
-
-# Build the Go forwarder binary
-build-forwarder:
- HASH=$(uv run scripts/hashdir.py) && go build -C networking/forwarder -buildvcs=false -o $GO_BUILD_DIR/forwarder -ldflags "-X 'main.SourceHash=${HASH}'"
- chmod 0755 $GO_BUILD_DIR/forwarder
-
-# Run forwarder tests
-test-forwarder:
- cd networking/forwarder && go test ./src/...
-
-# Build all components (Python packages and Go forwarder)
-build-all: build build-forwarder
-
-run n="1" clean="false":
- @echo "→ Spinning up {{n}} node(s) (clean={{clean}})"
- if [ "{{clean}}" = "true" ]; then ./run.sh -c; else ./run.sh; fi
- if [ "{{n}}" -gt 1 ]; then \
- for i in $(seq 2 "{{n}}"); do \
- if [ "{{clean}}" = "true" ]; then ./run.sh -rc; else ./run.sh -r; fi; \
- done; \
- fi
-
-# remote debugging auto-runner command: TODO: find better place to put this??
-# -> this pulls from upstream and wipes .exo folder, rebuilds & restarts
-# -> TODO: maybe add a sync step for python deps ??
-autorun-master:
- uv run scripts/watch-pull-restart.py --cmd "uv run exo-master" --restart-cmd "rm -rf ~/.exo && just build-forwarder"
\ No newline at end of file
diff --git a/nix/modules/flake-root.nix b/nix/modules/flake-root.nix
deleted file mode 100644
index 6b000405..00000000
--- a/nix/modules/flake-root.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-# Provides path to project root with:
-# 1. ${lib.getExe config.flake-root.package}
-# 2. $FLAKE_ROOT environment-varible
-
-# These values would bind to the consumer flake when this flake module is imported:
-{ inputs, ... }:
-
-# The actual flake-parts module configuration
-{
- imports = [ inputs.flake-root.flakeModule ];
- perSystem =
- { config, ... }:
- {
- flake-root.projectRootFile = "flake.nix"; # Not necessary, as flake.nix is the default
-
- make-shells.default = {
- inputsFrom = [ config.flake-root.devShell ]; # Adds $FLAKE_ROOT to environment
- };
- };
-}
diff --git a/nix/modules/go-forwarder.nix b/nix/modules/go-forwarder.nix
deleted file mode 100644
index 1ef6857c..00000000
--- a/nix/modules/go-forwarder.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- perSystem =
- {
- config,
- pkgs,
- lib,
- ...
- }:
- {
- make-shells.default = {
- # Go 1.24 compiler – align with go.mod
- packages = [ pkgs.go_1_24 ];
- shellHook = ''
- GOPATH="''$(${lib.getExe config.flake-root.package})"/.go_cache
- export GOPATH
- '';
- };
- };
-}
diff --git a/nix/modules/just-flake.nix b/nix/modules/just-flake.nix
deleted file mode 100644
index e7a0d2db..00000000
--- a/nix/modules/just-flake.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-# Provides pretty banner & command index for this flake
-
-{ inputs, ... }:
-{
- imports = [ inputs.just-flake.flakeModule ];
- perSystem =
- { config, ... }:
- {
- just-flake.features = {
- # treefmt.enable = true;
- # rust.enable = true;
- # convco.enable = true;
- # hello = {
- # enable = true;
- # justfile = ''
- # hello:
- # echo Hello World
- # '';
- # };
- };
-
- make-shells.default = {
- inputsFrom = [ config.just-flake.outputs.devShell ];
- };
- };
-}
diff --git a/nix/modules/macmon.nix b/nix/modules/macmon.nix
deleted file mode 100644
index 23fa9457..00000000
--- a/nix/modules/macmon.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- perSystem =
- { lib, pkgs, ... }:
- lib.mkMerge [
- (lib.mkIf pkgs.stdenv.isDarwin {
- make-shells.default = {
- packages = [ pkgs.macmon ];
- };
- })
- ];
-
-}
diff --git a/nix/modules/pkgs-init.nix b/nix/modules/pkgs-init.nix
deleted file mode 100644
index f75c5944..00000000
--- a/nix/modules/pkgs-init.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-# Single module responsible for collecting all overlays and instantiating in one go
-
-{
- flake-parts-lib,
- inputs,
- self,
- specialArgs,
- ...
-}:
-let
- inherit (flake-parts-lib) mkPerSystemOption;
-in
-{
- options.perSystem = mkPerSystemOption (
- {
- system,
- config,
- lib,
- options,
- pkgs,
- self',
- ...
- }@args:
- let
- inherit (lib.types)
- attrsOf
- listOf
- submoduleWith
- raw
- ;
- in
- {
- options.pkgs-init.overlays = lib.mkOption {
- description = ''
- List of nixpkgs overlays (functions of the form: final: prev: { ... }).
- Any module can append. Order matters.
- '';
- default = [ ];
- example = [
- (final: prev: {
- my-hello = prev.hello;
- })
- ];
- type = lib.types.listOf lib.types.unspecified;
- };
- options.pkgs-init.importArgs = lib.mkOption {
- description = "Extra arguments merged into the nixpkgs import call.";
- default = { };
- type = lib.types.attrs;
- };
- config = {
- _module.args.pkgs = import inputs.nixpkgs (
- {
- inherit system;
- overlays = config.pkgs-init.overlays;
- }
- // config.pkgs-init.importArgs
- );
- };
- }
- );
-}
diff --git a/nix/modules/python.nix b/nix/modules/python.nix
deleted file mode 100644
index ccda8358..00000000
--- a/nix/modules/python.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-# Configures Python shell
-
-{
- perSystem =
- { pkgs, ... }:
- {
- make-shells.default = {
- packages = [
- pkgs.python313
- pkgs.uv
- pkgs.ruff
- pkgs.basedpyright
- ];
-
- shellHook = ''
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${pkgs.python313}/lib
- '';
- };
- };
-}
diff --git a/nix/modules/rust.nix b/nix/modules/rust.nix
deleted file mode 100644
index 1eb4865d..00000000
--- a/nix/modules/rust.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-# Configures Rust shell
-
-{ inputs, ... }:
-{
- perSystem =
- { pkgs, ... }:
- {
- pkgs-init.overlays = [
- inputs.fenix.overlays.default
- ];
-
- make-shells.default = {
- packages = [
- (pkgs.fenix.complete.withComponents [
- "cargo"
- "rustc"
- "clippy"
- "rustfmt"
- "rust-src"
- ])
- pkgs.rustup # literally only added to make RustRover happy (otherwise useless)
- ];
- };
- };
-}
← 22f0ca2a FIX: OpenWebUI compat
·
back to Exo
·
version bump for brew consistency 962e5ef4 →