79 lines
1.8 KiB
Nix
79 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
pkg-config,
|
|
makeWrapper,
|
|
symlinkJoin,
|
|
|
|
freetype,
|
|
fontconfig,
|
|
openssl,
|
|
sqlite,
|
|
rustPlatform,
|
|
|
|
shimmering-fonts,
|
|
arcaea-ptt-data,
|
|
private-config,
|
|
shimmeringdarkness,
|
|
}:
|
|
let
|
|
# We bake the env vars into the binaries in a separate derivation,
|
|
# such that changing cc data/the content bundle doesn't rebuild the bot.
|
|
unpatched = rustPlatform.buildRustPackage {
|
|
pname = "shimmeringmoon";
|
|
version = "unstable-2025-02-11";
|
|
src = lib.fileset.toSource {
|
|
root = ../.;
|
|
fileset = lib.fileset.unions [
|
|
../Cargo.lock
|
|
../Cargo.toml
|
|
../migrations
|
|
../src
|
|
];
|
|
};
|
|
|
|
SHIMMERING_FONT_DIR = shimmering-fonts;
|
|
SHIMMERING_COMPTIME_PRIVATE_CONFIG_DIR = shimmeringdarkness;
|
|
|
|
nativeBuildInputs = [ pkg-config ];
|
|
|
|
buildInputs = [
|
|
freetype
|
|
fontconfig
|
|
sqlite
|
|
openssl
|
|
];
|
|
|
|
useFetchCargoVendor = true;
|
|
cargoLock = {
|
|
lockFile = ../Cargo.lock;
|
|
outputHashes = {
|
|
"plotters-0.4.0" = "sha256-9wtd7lig1vQ2RJVaEHdicfPZy2AyuoNav8shPMZ1EuE=";
|
|
"faer-0.19.4" = "sha256-VXMk2S3caMMs0N0PJa/m/7aPykYgeXVVn7GWPnG63nQ=";
|
|
"poise-0.6.1" = "sha256-44pPe02JJ97GEpzAXdQmDq/9bb4KS9G7ZFVlBRC6EYs=";
|
|
};
|
|
};
|
|
|
|
# Disable all tests
|
|
doCheck = false;
|
|
|
|
meta = {
|
|
description = "Arcaea score management toolchain";
|
|
homepage = "https://git.moonythm.dev/prescientmoon/shimmeringmoon";
|
|
mainProgram = "shimmering-cli";
|
|
platforms = [ "x86_64-linux" ];
|
|
};
|
|
};
|
|
in
|
|
symlinkJoin {
|
|
inherit (unpatched) name meta;
|
|
paths = [ unpatched ];
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
postBuild = ''
|
|
for file in $out/bin/*; do
|
|
wrapProgram $file \
|
|
--set SHIMMERING_CC_DIR "${arcaea-ptt-data}" \
|
|
--set SHIMMERING_PRIVATE_CONFIG_DIR ${private-config}
|
|
done
|
|
'';
|
|
}
|