Compare commits
No commits in common. "930a3007e0a252c747dc53108a062eb5c49de080" and "cb7785a2b45d5aebf40ec55f0acd82751074399d" have entirely different histories.
930a3007e0
...
cb7785a2b4
153
flake.nix
153
flake.nix
|
@ -10,97 +10,92 @@
|
|||
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, rust-overlay, flake-utils, naersk }: flake-utils.lib.eachDefaultSystem (system: let
|
||||
overlays = [
|
||||
rust-overlay.overlay
|
||||
(final: prev: {
|
||||
rustc = final.rust-bin.nightly.latest.default.override { targets = [ "wasm32-unknown-unknown" ]; };
|
||||
cargo = final.rust-bin.nightly.latest.default.override { targets = [ "wasm32-unknown-unknown" ]; };
|
||||
})
|
||||
];
|
||||
pkgs = import nixpkgs { inherit system overlays; };
|
||||
naerskLib = pkgs.callPackage naersk { };
|
||||
in
|
||||
rec {
|
||||
packages = {
|
||||
backend = naerskLib.buildPackage {
|
||||
src = ./backend;
|
||||
outputs = { self, nixpkgs, rust-overlay, flake-utils, naersk }: flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
overlays = [
|
||||
rust-overlay.overlay
|
||||
(final: prev: {
|
||||
rustc = final.rust-bin.nightly.latest.default.override { targets = [ "wasm32-unknown-unknown" ]; };
|
||||
cargo = final.rust-bin.nightly.latest.default.override { targets = [ "wasm32-unknown-unknown" ]; };
|
||||
})
|
||||
];
|
||||
pkgs = import nixpkgs { inherit system overlays; };
|
||||
naerskLib = pkgs.callPackage naersk { };
|
||||
in
|
||||
rec {
|
||||
packages = {
|
||||
backend = naerskLib.buildPackage {
|
||||
src = ./backend;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
wasm-bindgen-cli
|
||||
wasm-pack
|
||||
];
|
||||
nativeBuildInputs = with pkgs; [
|
||||
wasm-bindgen-cli
|
||||
wasm-pack
|
||||
];
|
||||
|
||||
overrideMain = (o: o // {
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
wasm-pack build --target web --release --mode no-install -- --offline
|
||||
runHook postBuild
|
||||
'';
|
||||
overrideMain = (o: o // {
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
wasm-pack build --target web --release --mode no-install -- --offline
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp -r pkg $out
|
||||
runHook postInstall
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
frontend = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "password-hash-self-service";
|
||||
|
||||
src = self;
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp -r pkg $out
|
||||
|
||||
mkdir $out
|
||||
cp \
|
||||
index.html \
|
||||
style.css \
|
||||
app.js \
|
||||
$out
|
||||
|
||||
mkdir $out/backend
|
||||
ln -s ${packages.backend} $out/backend/pkg
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
frontend = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "password-hash-self-service";
|
||||
defaultPackage = packages.frontend;
|
||||
|
||||
src = self;
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out
|
||||
cp \
|
||||
index.html \
|
||||
style.css \
|
||||
app.js \
|
||||
$out
|
||||
|
||||
mkdir $out/backend
|
||||
ln -s ${packages.backend} $out/backend/pkg
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
devShell = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
wasm-pack
|
||||
(rust-bin.nightly.latest.default.override { targets = [ "wasm32-unknown-unknown" ]; })
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
defaultPackage = packages.frontend;
|
||||
|
||||
devShell = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
wasm-pack
|
||||
(rust-bin.nightly.latest.default.override { targets = [ "wasm32-unknown-unknown" ]; })
|
||||
];
|
||||
};
|
||||
|
||||
apps = {
|
||||
serve = {
|
||||
type = "app";
|
||||
program = toString (pkgs.writeShellScript "serve" ''
|
||||
${pkgs.python3}/bin/python3 -m http.server
|
||||
'');
|
||||
apps = {
|
||||
serve = {
|
||||
type = "app";
|
||||
program = toString (pkgs.writeShellScript "serve" ''
|
||||
${pkgs.python3}/bin/python3 -m http.server
|
||||
'');
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hydraJobs =
|
||||
if pkgs.lib.elem system [ "x86_64-linux" ]
|
||||
then {
|
||||
backend = packages.backend;
|
||||
frontend = packages.frontend;
|
||||
hydra-product = pkgs.runCommandNoCC "hydra-product" { } ''
|
||||
cp -rs ${defaultPackage} $out
|
||||
chmod +w $out
|
||||
mkdir -p $out/nix-support
|
||||
echo "doc app $out/index.html" >> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
}
|
||||
else { };
|
||||
});
|
||||
hydraJobs =
|
||||
if pkgs.lib.elem system [ "x86_64-linux" ]
|
||||
then {
|
||||
backend = packages.backend;
|
||||
frontend = packages.frontend;
|
||||
}
|
||||
else { };
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue