This commit is contained in:
Robin Appelman 2025-05-26 21:15:53 +02:00
commit 4c876ae69c
6 changed files with 83 additions and 82 deletions

View file

@ -1,34 +1,33 @@
{ rustPlatform
, openssl
, pkg-config
, lib
,
}:
let
{
rustPlatform,
openssl,
pkg-config,
lib,
}: let
inherit (lib.sources) sourceByRegex;
inherit (builtins) fromTOML readFile;
src = sourceByRegex ./. [ "Cargo.*" "((types|archiver|)/?(src)?)(/.*)?" "README.md" ];
src = sourceByRegex ./. ["Cargo.*" "((types|archiver|)/?(src)?)(/.*)?" "README.md"];
version = (fromTOML (readFile archiver/Cargo.toml)).package.version;
in
rustPlatform.buildRustPackage rec {
pname = "ugc-api-archiver";
sourceRoot = "${src.name}/archiver";
rustPlatform.buildRustPackage rec {
pname = "ugc-api-archiver";
sourceRoot = "${src.name}/archiver";
inherit src version;
inherit src version;
buildInputs = [
openssl
];
buildInputs = [
openssl
];
nativeBuildInputs = [
pkg-config
];
nativeBuildInputs = [
pkg-config
];
OPENSSL_NO_VENDOR = 1;
OPENSSL_NO_VENDOR = 1;
doCheck = false;
doCheck = false;
cargoLock = {
lockFile = ./archiver/Cargo.lock;
};
}
cargoLock = {
lockFile = ./archiver/Cargo.lock;
};
}

View file

@ -61,7 +61,8 @@ Historical team membership data
Match data.
Due to limitations of the data available on ugc, the asia region is currently not included.
Due to limitations of the data available on ugc, the asia region is currently
not included.
#### Sample

View file

@ -10,31 +10,33 @@
inputs.flakelight.follows = "flakelight";
};
};
outputs = { mill-scale, ... }: mill-scale ./. {
extraFilesRegex = [ ".*\.html" ];
withOverlays = [(import ./overlay.nix)];
packages = {
ugc-api-server = pkgs: pkgs.ugc-api-server;
ugc-api-archiver = pkgs: pkgs.ugc-api-archiver;
};
tools = pkgs: with pkgs; [
bacon
cargo-insta
sqlx-cli
];
nixosModules = { outputs, ... }: {
default =
{ pkgs
, config
, lib
, ...
outputs = {mill-scale, ...}:
mill-scale ./. {
extraFilesRegex = [".*\.html"];
withOverlays = [(import ./overlay.nix)];
packages = {
ugc-api-server = pkgs: pkgs.ugc-api-server;
ugc-api-archiver = pkgs: pkgs.ugc-api-archiver;
};
tools = pkgs:
with pkgs; [
bacon
cargo-insta
sqlx-cli
];
nixosModules = {outputs, ...}: {
default = {
pkgs,
config,
lib,
...
}: {
imports = [ ./module.nix ];
imports = [./module.nix];
config = lib.mkIf config.services.ugc-api-server.enable {
nixpkgs.overlays = [ (import ./overlay.nix) ];
nixpkgs.overlays = [(import ./overlay.nix)];
services.ugc-api-server.package = lib.mkDefault pkgs.ugc-api-server;
};
};
};
};
};
}

View file

@ -1,12 +1,12 @@
{ config
, lib
, pkgs
, ...
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.services.ugc-api-server;
in
{
in {
options.services.ugc-api-server = {
enable = mkEnableOption "ugc api server";
@ -30,9 +30,9 @@ in
config = mkIf cfg.enable {
systemd.services."ugc-api-server" = {
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = ["multi-user.target"];
after = ["network-online.target"];
wants = ["network-online.target"];
environment = {
RUST_LOG = cfg.logLevel;
PORT = toString cfg.port;
@ -61,7 +61,7 @@ in
RestrictAddressFamilies = "AF_INET AF_INET6";
RestrictRealtime = true;
ProtectProc = "noaccess";
SystemCallFilter = [ "@system-service" "~@resources" "~@privileged" ];
SystemCallFilter = ["@system-service" "~@resources" "~@privileged"];
PrivateUsers = true;
ProcSubset = "pid";
};

View file

@ -1,4 +1,4 @@
final: prev: {
ugc-api-server = final.callPackage ./package.nix { };
ugc-api-archiver = final.callPackage ./archiver.nix { };
ugc-api-server = final.callPackage ./package.nix {};
ugc-api-archiver = final.callPackage ./archiver.nix {};
}

View file

@ -1,34 +1,33 @@
{ rustPlatform
, openssl
, pkg-config
, lib
,
}:
let
{
rustPlatform,
openssl,
pkg-config,
lib,
}: let
inherit (lib.sources) sourceByRegex;
inherit (builtins) fromTOML readFile;
src = sourceByRegex ./. [ "Cargo.*" "((types|api-server|)/?(src)?)(/.*)?" "README.md" ];
src = sourceByRegex ./. ["Cargo.*" "((types|api-server|)/?(src)?)(/.*)?" "README.md"];
version = (fromTOML (readFile api-server/Cargo.toml)).package.version;
in
rustPlatform.buildRustPackage rec {
pname = "ugc-api-server";
sourceRoot = "${src.name}/api-server";
rustPlatform.buildRustPackage rec {
pname = "ugc-api-server";
sourceRoot = "${src.name}/api-server";
inherit src version;
inherit src version;
buildInputs = [
openssl
];
buildInputs = [
openssl
];
nativeBuildInputs = [
pkg-config
];
nativeBuildInputs = [
pkg-config
];
OPENSSL_NO_VENDOR = 1;
OPENSSL_NO_VENDOR = 1;
doCheck = false;
doCheck = false;
cargoLock = {
lockFile = ./api-server/Cargo.lock;
};
}
cargoLock = {
lockFile = ./api-server/Cargo.lock;
};
}