From 4a7331e3e420e7f455b524dc003d4bb30b4d1174 Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Sat, 9 Aug 2025 22:20:51 +0200 Subject: [PATCH] feat: Nix packaging --- Cargo.lock | 2 +- Cargo.toml | 2 +- flake.lock | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 48 ++++++++++++++++++++++++++++++++++++++ madd-client.nix | 31 +++++++++++++++++++++++++ madd-server.nix | 12 ++++++++++ 6 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 madd-client.nix create mode 100644 madd-server.nix diff --git a/Cargo.lock b/Cargo.lock index 8a86611..752b691 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1133,7 +1133,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] -name = "madd" +name = "madd-server" version = "0.1.0" dependencies = [ "axum", diff --git a/Cargo.toml b/Cargo.toml index 5312722..0730e8e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "madd" +name = "madd-server" version = "0.1.0" edition = "2024" diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2572c12 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1754498491, + "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "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", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..6355d16 --- /dev/null +++ b/flake.nix @@ -0,0 +1,48 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = + { + nixpkgs, + flake-utils, + ... + }: + let + mkPackages = pkgs: { + madd-client = pkgs.callPackage ./madd-client.nix { }; + madd-server = pkgs.callPackage ./madd-server.nix { }; + }; + in + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { + inherit system; + }; + in + { + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ + cargo + clippy + rustfmt + rustc + ]; + }; + + packages = mkPackages pkgs; + } + ) + // rec { + overlays.madd = final: prev: mkPackages final; + overlays.default = overlays.madd; + + nixosModules.madd = { + + }; + nixosModules.default = nixosModules.madd; + }; +} diff --git a/madd-client.nix b/madd-client.nix new file mode 100644 index 0000000..74d39ee --- /dev/null +++ b/madd-client.nix @@ -0,0 +1,31 @@ +{ + lib, + stdenv, + makeWrapper, + curl, + coreutils, + openssh, + gnused, +}: + +stdenv.mkDerivation { + pname = "madd-client"; + version = "0.1.0"; + + src = ./.; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + install -TDm777 $src/client.sh $out/bin/madd-client + wrapProgram $out/bin/madd-client \ + --prefix PATH : ${ + lib.makeBinPath [ + curl + coreutils + openssh + gnused + ] + } + ''; +} diff --git a/madd-server.nix b/madd-server.nix new file mode 100644 index 0000000..973282d --- /dev/null +++ b/madd-server.nix @@ -0,0 +1,12 @@ +{ + rustPlatform, +}: + +rustPlatform.buildRustPackage { + pname = "madd-server"; + version = "0.1.0"; + + src = ./.; + + cargoLock.lockFile = ./Cargo.lock; +}