mirror of
https://codeberg.org/demostf/inspector.git
synced 2026-06-03 18:14:08 +02:00
flake packaging
This commit is contained in:
parent
ba6380c558
commit
31d19cdcdd
12 changed files with 1252 additions and 433 deletions
82
flake.nix
82
flake.nix
|
|
@ -3,6 +3,10 @@
|
|||
nixpkgs.url = "nixpkgs/release-22.05";
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
npmlock2nix = {
|
||||
url = "github:nix-community/npmlock2nix";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
|
|
@ -10,22 +14,92 @@
|
|||
nixpkgs,
|
||||
utils,
|
||||
rust-overlay,
|
||||
npmlock2nix,
|
||||
}:
|
||||
utils.lib.eachDefaultSystem (system: let
|
||||
overlays = [ (import rust-overlay) ];
|
||||
overlays = [
|
||||
(import rust-overlay)
|
||||
(final: prev: {
|
||||
npmlock2nix = import npmlock2nix { pkgs = final; };
|
||||
rust-wasm = (final.rust-bin.stable.latest.default.override {
|
||||
targets = [ "wasm32-unknown-unknown" ];
|
||||
});
|
||||
demo-inspector-wasm = import ./wasm.nix final;
|
||||
nodejs = final.nodejs-16_x;
|
||||
node_modules = let
|
||||
without-local-deps =
|
||||
prev.stdenv.mkDerivation {
|
||||
name = "demo-inspector-without-local-deps";
|
||||
src = ./www;
|
||||
buildInputs = [ prev.jq ];
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cat $src/package.json \
|
||||
| jq 'del( .dependencies."demo-inspector" )' \
|
||||
> $out/package.json
|
||||
cat $src/package-lock.json \
|
||||
| jq 'del( .packages."".dependencies."demo-inspector" )' \
|
||||
| jq 'del( .dependencies."demo-inspector" )' \
|
||||
| jq 'del( .packages."demo-inspector" )' \
|
||||
| jq 'del( .packages."../wasm/pkg" )' \
|
||||
| jq 'del( .packages."node_modules/demo-inspector" )' \
|
||||
> $out/package-lock.json
|
||||
'';
|
||||
};
|
||||
|
||||
npmlock2nix-d =
|
||||
final.npmlock2nix.v2.node_modules {
|
||||
src = without-local-deps;
|
||||
};
|
||||
|
||||
with-local-deps =
|
||||
pkgs.runCommand "demo-inspector-with-local-deps" {} ''
|
||||
mkdir $out
|
||||
cp -r -- ${npmlock2nix-d}/node_modules $out
|
||||
chmod +w -R $out/node_modules
|
||||
cp -r -- ${final.demo-inspector-wasm} $out/node_modules/demo-inspector
|
||||
'';
|
||||
|
||||
in with-local-deps;
|
||||
})
|
||||
];
|
||||
pkgs = import nixpkgs {
|
||||
inherit system overlays;
|
||||
};
|
||||
in rec {
|
||||
devShells.default = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [
|
||||
(rust-bin.stable.latest.default.override {
|
||||
targets = [ "wasm32-unknown-unknown" ];
|
||||
})
|
||||
rust-wasm
|
||||
cargo-edit
|
||||
bacon
|
||||
wasm-pack
|
||||
nodejs
|
||||
node2nix
|
||||
wasm-bindgen-cli
|
||||
];
|
||||
};
|
||||
|
||||
packages.demo-inspector-wasm = pkgs.demo-inspector-wasm;
|
||||
|
||||
packages.demo-inspector = pkgs.stdenv.mkDerivation rec {
|
||||
name = "demo-inspector";
|
||||
version = "0.1.0";
|
||||
|
||||
src = ./www;
|
||||
|
||||
buildInputs = with pkgs; [nodejs];
|
||||
buildPhase = with pkgs; ''
|
||||
ln -s ${node_modules}/node_modules ./node_modules
|
||||
ls -l ./node_modules/
|
||||
npm run build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp index.html $out/
|
||||
cp -r dist $out/
|
||||
'';
|
||||
};
|
||||
defaultPackage = packages.demo-inspector;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue