From 23fc8d2509c1ef5de73f03928a3026887ecec6d9 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 14 May 2026 18:59:12 +0200 Subject: [PATCH] flake reorg --- Dockerfile | 12 ----- docker.nix | 12 ----- flake.lock | 95 +++++++++++++++++++++++++--------- flake.nix | 63 ++++++++-------------- module.nix => nix/module.nix | 1 - overlay.nix => nix/overlay.nix | 0 nix/package.nix | 31 +++++++++++ package.nix | 18 ------- 8 files changed, 125 insertions(+), 107 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker.nix rename module.nix => nix/module.nix (99%) rename overlay.nix => nix/overlay.nix (100%) create mode 100644 nix/package.nix delete mode 100644 package.nix diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 5c8f5be..0000000 --- a/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM ekidd/rust-musl-builder AS build - -ADD . ./ -RUN sudo chown -R rust:rust . - -RUN cargo build --release - -FROM alpine:latest - -COPY --from=build /home/rust/src/target/x86_64-unknown-linux-musl/release/backup / -ENV RUST_LOG=info -CMD ["/backup"] \ No newline at end of file diff --git a/docker.nix b/docker.nix deleted file mode 100644 index 902fcd0..0000000 --- a/docker.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - dockerTools, - demostf-backup, -}: -dockerTools.buildImage { - name = "demostf/backup"; - tag = "latest"; - copyToRoot = [demostf-backup]; - config = { - Cmd = ["${demostf-backup}/bin/demostf-backup"]; - }; -} diff --git a/flake.lock b/flake.lock index c723d67..2daf2cf 100644 --- a/flake.lock +++ b/flake.lock @@ -1,56 +1,103 @@ { "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, + "crane": { "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "lastModified": 1774313767, + "narHash": "sha256-hy0XTQND6avzGEUFrJtYBBpFa/POiiaGBr2vpU6Y9tY=", + "owner": "ipetkov", + "repo": "crane", + "rev": "3d9df76e29656c679c744968b17fbaf28f0e923d", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "ipetkov", + "repo": "crane", "type": "github" } }, + "flakelight": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778512898, + "narHash": "sha256-kwq7PYUbP6jNM/YiDEo21vbzefr93SUe0NbmCJIMFNw=", + "owner": "nix-community", + "repo": "flakelight", + "rev": "f91eac171176dca81cbb0ae64ed75a9143ded8ba", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flakelight", + "type": "github" + } + }, + "mill-scale": { + "inputs": { + "crane": "crane", + "flakelight": [ + "flakelight" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1776692281, + "narHash": "sha256-DCCSbpTUDqRiHsTS/sIgCTwa1r4gsJlWSFE6difdWxk=", + "ref": "refs/heads/main", + "rev": "d1d0e0bb5b0acebed06ccced9cc27f82aafab058", + "revCount": 71, + "type": "git", + "url": "https://codeberg.org/icewind/mill-scale.git" + }, + "original": { + "type": "git", + "url": "https://codeberg.org/icewind/mill-scale.git" + } + }, "nixpkgs": { "locked": { - "lastModified": 1705183652, - "narHash": "sha256-rnfkyUH0x72oHfiSDhuCHDHg3gFgF+lF8zkkg5Zihsw=", + "lastModified": 1778430510, + "narHash": "sha256-Ti+ZBvW6yrWWAg2szExVTwCd4qOJ3KlVr1tFHfyfi8Q=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "428544ae95eec077c7f823b422afae5f174dee4b", + "rev": "8fd9daa3db09ced9700431c5b7ad0e8ba199b575", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-23.11", + "ref": "nixos-25.11", "type": "indirect" } }, "root": { "inputs": { - "flake-utils": "flake-utils", + "flakelight": "flakelight", + "mill-scale": "mill-scale", "nixpkgs": "nixpkgs" } }, - "systems": { + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "mill-scale", + "flakelight", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1774535687, + "narHash": "sha256-dpKS/8+uB0EoI4mCrpio+xs8Xxry6ZhLLwV8VIbbfrs=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "75900435aa883f84b038316864b3f60956681523", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "oxalica", + "repo": "rust-overlay", "type": "github" } } diff --git a/flake.nix b/flake.nix index 1ec1d1f..3078b6d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,46 +1,29 @@ { inputs = { - nixpkgs.url = "nixpkgs/nixos-23.11"; - flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "nixpkgs/nixos-25.11"; + flakelight = { + url = "github:nix-community/flakelight"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + mill-scale = { + url = "git+https://codeberg.org/icewind/mill-scale.git"; + inputs.flakelight.follows = "flakelight"; + }; }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem ( - system: let - overlays = [ - (import ./overlay.nix) - ]; - pkgs = (import nixpkgs) { - inherit system overlays; - }; - in rec { - packages = rec { - demostf-backup = pkgs.demostf-backup; - dockerImage = pkgs.callPackage ./docker.nix {}; - default = demostf-backup; - }; - - devShells.default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [rustc cargo rustfmt clippy cargo-edit cargo-audit bacon]; - }; - } - ) - // { - overlays.default = import ./overlay.nix; - nixosModules.default = { - pkgs, - config, - lib, - ... - }: { - imports = [./module.nix]; - config = lib.mkIf config.services.demostf-backup.enable { - nixpkgs.overlays = [self.overlays.default]; - services.demostf-backup.package = lib.mkDefault pkgs.demostf-backup; + outputs = {mill-scale, ...}: + mill-scale ./. { + nixosModules = {outputs, ...}: { + default = { + pkgs, + config, + lib, + ... + }: { + imports = [./nix/module.nix]; + config = lib.mkIf config.services.demostf-backup.enable { + nixpkgs.overlays = [outputs.overlays.default]; + services.demostf-backup.package = lib.mkDefault pkgs.demostf-backup; + }; }; }; }; diff --git a/module.nix b/nix/module.nix similarity index 99% rename from module.nix rename to nix/module.nix index d034c64..93ee8eb 100644 --- a/module.nix +++ b/nix/module.nix @@ -1,7 +1,6 @@ { config, lib, - pkgs, ... }: with lib; let diff --git a/overlay.nix b/nix/overlay.nix similarity index 100% rename from overlay.nix rename to nix/overlay.nix diff --git a/nix/package.nix b/nix/package.nix new file mode 100644 index 0000000..3061396 --- /dev/null +++ b/nix/package.nix @@ -0,0 +1,31 @@ +{ + rustPlatform, + lib, + openssl, + pkg-config, +}: let + inherit (lib.sources) sourceByRegex; + inherit (builtins) fromTOML readFile; + src = sourceByRegex ../. ["Cargo.*" "(src)(/.*)?"]; + cargoPackage = (fromTOML (readFile ../Cargo.toml)).package; +in + rustPlatform.buildRustPackage { + pname = cargoPackage.name; + inherit (cargoPackage) version; + + inherit src; + + buildInputs = [ + openssl + ]; + + nativeBuildInputs = [ + pkg-config + ]; + + cargoLock = { + lockFile = ../Cargo.lock; + }; + + meta.mainProgram = "demostf-backup"; + } diff --git a/package.nix b/package.nix deleted file mode 100644 index 5971bf2..0000000 --- a/package.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - stdenv, - rustPlatform, - lib, -}: let - inherit (lib.sources) sourceByRegex; - src = sourceByRegex ./. ["Cargo.*" "(src)(/.*)?"]; -in - rustPlatform.buildRustPackage rec { - pname = "demostf-backup"; - version = "0.1.0"; - - inherit src; - - cargoLock = { - lockFile = ./Cargo.lock; - }; - }