Update dependencies

This commit is contained in:
Quentin Boyer 2024-12-30 21:19:19 +01:00
parent dec027f258
commit 53ec443972
18 changed files with 1342 additions and 1870 deletions

182
flake.nix
View file

@ -4,146 +4,52 @@
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.naersk.url = "github:nix-community/naersk";
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
inputs.trunk = {
url = "github:thedodd/trunk";
flake = false;
};
outputs = {
self,
nixpkgs,
flake-utils,
naersk,
rust-overlay,
trunk,
}:
(flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {
inherit system;
overlays = [(import rust-overlay)];
};
rust = pkgs.rust-bin.stable.latest.default.override {
targets = ["wasm32-unknown-unknown"];
};
naersk' = pkgs.callPackage naersk {
cargo = rust;
rustc = rust;
};
rustPlatform = pkgs.makeRustPlatform {
cargo = rust;
rustc = rust;
};
in {
devShell = pkgs.mkShell {
nativeBuildInputs = [
rustPlatform.bindgenHook
pkgs.cmake
rust
self.packages.${system}.dioxus
(naersk'.buildPackage trunk)
pkgs.httpie
pkgs.sea-orm-cli
];
RUST_PATH = "${rust}";
RUST_DOC_PATH = "${rust}/share/doc/rust/html/std/index.html";
};
outputs =
{
self,
nixpkgs,
flake-utils,
naersk,
rust-overlay,
}:
(flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ (import rust-overlay) ];
};
rust = pkgs.rust-bin.stable.latest.default.override {
targets = [ "wasm32-unknown-unknown" ];
};
naersk' = pkgs.callPackage naersk {
cargo = rust;
rustc = rust;
};
rustPlatform = pkgs.makeRustPlatform {
cargo = rust;
rustc = rust;
};
in
{
devShell = pkgs.mkShell {
nativeBuildInputs = [
rustPlatform.bindgenHook
pkgs.cmake
rust
pkgs.httpie
pkgs.sea-orm-cli
];
RUST_PATH = "${rust}";
RUST_DOC_PATH = "${rust}/share/doc/rust/html/std/index.html";
};
packages = {
dioxus = pkgs.callPackage ({
rustPlatform,
pkg-config,
cacert,
openssl,
coreutils-full,
}:
rustPlatform.buildRustPackage rec {
pname = "dioxus-cli";
version = "0.4.0";
src = pkgs.fetchCrate {
inherit version pname;
hash = "sha256-4BIuD/rrA398hPEoNt5PwWylPAR0fA1UKc90xyH5Fd0=";
};
nativeBuildInputs = [pkg-config cacert coreutils-full];
buildInputs = [openssl];
OPENSSL_NO_VENDOR = 1;
cargoHash = "sha256-ok+fjvwz4k0/M5j7wut2A2AK6tuO3UfZtgoCXaCaHXY=";
}) {};
server = naersk'.buildPackage ./.;
frontend = let
pkg = {
stdenv,
makeRustPlatform,
wasm-bindgen-cli,
apiServerBase ? "http://localhost:8085",
frontendRoot ? "http://localhost:8080",
fetchzip,
bootstrap ? let
version = "5.3.1";
in
fetchzip {
url = "https://github.com/twbs/bootstrap/releases/download/v${version}/bootstrap-${version}-dist.zip";
hash = "sha256-BKtQB7IaslmmW6cLF4m/uUJQaBDndRf7tJ9gjItKVI4=";
},
bootstrapIcons ? let
version = "1.10.5";
in
fetchzip {
url = "https://github.com/twbs/icons/releases/download/v${version}/bootstrap-icons-${version}.zip";
hash = "sha256-o+owSIRMIXOH/GvQlVNlnCv/hcWD6kmoXNwm7F1Dmxs=";
},
}: let
rustPlatformWasm = makeRustPlatform {
rustc = rust;
cargo = rust;
};
in
stdenv.mkDerivation {
pname = "regalade-web";
version = "0.1.0";
src = ./.;
cargoDeps = rustPlatformWasm.importCargoLock {lockFile = ./Cargo.lock;};
REGALADE_API_SERVER_BASE = apiServerBase;
REGALADE_FRONTEND_DOMAIN = frontendRoot;
nativeBuildInputs = [
self.packages.${system}.dioxus
wasm-bindgen-cli
rustPlatformWasm.cargoSetupHook
rustPlatformWasm.cargoBuildHook
];
buildPhase = ''
runHook preBuild
export XDG_DATA_HOME=/build/data
mkdir -p $XDG_DATA_HOME
cd web
dx build --release
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -R dist $out
ln -s ${bootstrap} $out/bootstrap
ln -s ${bootstrapIcons} $out/bootstrap-icons
runHook postInstall
'';
};
in
pkgs.callPackage pkg {};
};
}))
packages = {
server = naersk'.buildPackage ./.;
};
}
))
// {
nixosModules.default = import ./nixos self;
};