mirror of
https://codeberg.org/icewind/ugc-scaper.git
synced 2026-06-03 10:14:11 +02:00
flake rework
This commit is contained in:
parent
5e034d7bef
commit
2e3ef9dfd3
11 changed files with 718 additions and 566 deletions
137
flake.nix
137
flake.nix
|
|
@ -1,115 +1,30 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-23.11";
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
naersk.url = "github:nix-community/naersk";
|
||||
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
||||
rust-overlay.inputs.flake-utils.follows = "utils";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
utils,
|
||||
naersk,
|
||||
rust-overlay,
|
||||
}:
|
||||
utils.lib.eachDefaultSystem (system: let
|
||||
overlays = [
|
||||
(import rust-overlay)
|
||||
(import ./overlay.nix)
|
||||
];
|
||||
pkgs = (import nixpkgs) {
|
||||
inherit system overlays;
|
||||
};
|
||||
inherit (pkgs) lib callPackage rust-bin mkShell;
|
||||
inherit (lib.sources) sourceByRegex;
|
||||
inherit (builtins) fromTOML readFile;
|
||||
|
||||
msrv = (fromTOML (readFile ./Cargo.toml)).package.rust-version;
|
||||
toolchain = rust-bin.stable.latest.default;
|
||||
msrvToolchain = rust-bin.stable."${msrv}".default;
|
||||
|
||||
naersk' = callPackage naersk {
|
||||
rustc = toolchain;
|
||||
cargo = toolchain;
|
||||
};
|
||||
msrvNaersk = callPackage naersk {
|
||||
rustc = msrvToolchain;
|
||||
cargo = msrvToolchain;
|
||||
};
|
||||
|
||||
src = sourceByRegex ./. ["Cargo.*" "(src|derive|benches|tests|examples)(/.*)?"];
|
||||
|
||||
deps = with pkgs; [
|
||||
pkg-config
|
||||
openssl
|
||||
];
|
||||
|
||||
nearskOpt = {
|
||||
pname = "ugc-scraper";
|
||||
root = src;
|
||||
nativeBuildInputs = deps;
|
||||
};
|
||||
in rec {
|
||||
packages = rec {
|
||||
check = naersk'.buildPackage (nearskOpt
|
||||
// {
|
||||
mode = "check";
|
||||
});
|
||||
clippy = naersk'.buildPackage (nearskOpt
|
||||
// {
|
||||
mode = "clippy";
|
||||
});
|
||||
test = naersk'.buildPackage (nearskOpt
|
||||
// {
|
||||
release = false;
|
||||
mode = "test";
|
||||
});
|
||||
msrv = msrvNaersk.buildPackage (nearskOpt
|
||||
// {
|
||||
mode = "check";
|
||||
});
|
||||
inherit (pkgs) ugc-api-server;
|
||||
default = ugc-api-server;
|
||||
};
|
||||
|
||||
devShells = let
|
||||
tools = with pkgs; [
|
||||
bacon
|
||||
cargo-insta
|
||||
cargo-edit
|
||||
cargo-outdated
|
||||
cargo-audit
|
||||
cargo-msrv
|
||||
cargo-semver-checks
|
||||
];
|
||||
in {
|
||||
default = mkShell {
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
nativeBuildInputs = [toolchain] ++ tools ++ deps;
|
||||
};
|
||||
msrv = mkShell {
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
nativeBuildInputs = [msrvToolchain] ++ tools ++ deps;
|
||||
};
|
||||
};
|
||||
})
|
||||
// {
|
||||
overlays.default = import ./overlay.nix;
|
||||
nixosModules.default = {
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [./module.nix];
|
||||
config = lib.mkIf config.services.ugc-api-server.enable {
|
||||
nixpkgs.overlays = [self.overlays.default];
|
||||
services.ugc-api-server.package = lib.mkDefault pkgs.ugc-api-server;
|
||||
};
|
||||
};
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
flakelight = {
|
||||
url = "github:nix-community/flakelight";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
mill-scale = {
|
||||
url = "github:icewind1991/mill-scale";
|
||||
inputs.flakelight.follows = "flakelight";
|
||||
};
|
||||
};
|
||||
outputs = { mill-scale, ... }: mill-scale ./. {
|
||||
extraFilesRegex = [ ".*\.html" ];
|
||||
nixosModules = { outputs, ... }: {
|
||||
default =
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}: {
|
||||
imports = [ ./module.nix ];
|
||||
config = lib.mkIf config.services.ugc-api-server.enable {
|
||||
nixpkgs.overlays = [ (import ./overlay.nix) ];
|
||||
services.ugc-api-server.package = lib.mkDefault pkgs.ugc-api-server;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue