Files
LibreTunes-DX/flake.nix
Ethan Girouard ea2bc49600
All checks were successful
Push Workflows / rustfmt (push) Successful in 5s
Push Workflows / tailwind-build (push) Successful in 5s
Push Workflows / clippy (push) Successful in 51s
Push Workflows / test (push) Successful in 58s
Push Workflows / docs (push) Successful in 58s
Push Workflows / build (push) Successful in 1m54s
Push Workflows / nix-build (push) Successful in 5m32s
Use buildDioxusWebApp builder
2026-08-04 20:58:25 -04:00

99 lines
2.8 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
daisyui.url = "git+https://git.mregirouard.com/nix/daisyui.git";
tailwindcss-with-pkgs.url = "git+https://git.mregirouard.com/nix/tailwindcss-with-pkgs.git";
dx-build.url = "git+https://gitea.mregirouard.com/nix/dx-build.git";
};
outputs = { self, nixpkgs, rust-overlay, flake-utils, ... }@inputs:
flake-utils.lib.eachDefaultSystem (system:
let
wasm-bindgen-overlay = (final: prev: {
wasm-bindgen-cli_0_2_123 = prev.wasm-bindgen-cli_0_2_121.overrideAttrs (old: rec {
src = prev.fetchCrate {
pname = "wasm-bindgen-cli";
version = "0.2.123";
hash = "sha256-ymeAEYsr7OnupWYJWjSeVGvq3+s+zxSNkODbzY62rYs=";
};
cargoDeps = prev.rustPlatform.fetchCargoVendor {
inherit src;
inherit (src) pname version;
hash = "sha256-d7x6gtx5OqEE4MyT6yjYn/qtgjx7GroTpXJewnBV2dU=";
};
});
});
pkgs = import nixpkgs {
inherit system;
overlays = [
(import rust-overlay)
wasm-bindgen-overlay
inputs.daisyui.overlays.default
inputs.tailwindcss-with-pkgs.overlays.default
inputs.dx-build.overlays.default
];
};
rust = pkgs.rust-bin.stable.latest.default.override {
targets = [ "wasm32-unknown-unknown" ];
};
build-pkgs = with pkgs; [
rust
dioxus-cli
wasm-bindgen-cli_0_2_123
binaryen
lld
(tailwindcss_4.withPackages [daisyui daisyui-theme])
postgresql
];
rev = if builtins.hasAttr "rev" self then self.rev else self.dirtyRev;
pkg-info = (pkgs.lib.trivial.importTOML ./Cargo.toml).package;
in
rec {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
diesel-cli
] ++ build-pkgs;
};
packages.default = packages.web;
packages.web = pkgs.rustPlatform.buildDioxusWebApp {
pname = pkg-info.name;
version = pkg-info.version;
src = ./.;
GIT_REV = rev;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = with pkgs; [
(tailwindcss_4.withPackages [daisyui daisyui-theme])
wasm-bindgen-cli_0_2_123
];
preBuild = ''
# dx build will run tailwindcss anyways, but doing it first here is faster and clearer if it fails
tailwindcss --input style/tailwind.css --output assets/tailwind.css
'';
};
}
);
}