mirror of
https://github.com/zaphar/kitchen.git
synced 2025-07-22 19:40:14 -04:00
Using naersk seems to work.
This commit is contained in:
parent
3da9f135be
commit
3c812a737f
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@ target/
|
|||||||
web/dist/
|
web/dist/
|
||||||
webdist/
|
webdist/
|
||||||
nix/*/result
|
nix/*/result
|
||||||
|
result/
|
35
flake.lock
generated
35
flake.lock
generated
@ -31,7 +31,39 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"naersk": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639947939,
|
||||||
|
"narHash": "sha256-pGsM8haJadVP80GFq4xhnSpNitYNQpaXk4cnA796Cso=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "2fc8ce9d3c025d59fee349c1f80be9785049d653",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1645937171,
|
||||||
|
"narHash": "sha256-n9f9GZBNMe8UMhcgmmaXNObkH01jjgp7INMrUgBgcy4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "22dc22f8cedc58fcb11afe1acb08e9999e78be9c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641224400,
|
"lastModified": 1641224400,
|
||||||
"narHash": "sha256-unXptp6PtSHSFVSAz+v6ZLtFDgaZZUCSjV0ie5A0qIw=",
|
"narHash": "sha256-unXptp6PtSHSFVSAz+v6ZLtFDgaZZUCSjV0ie5A0qIw=",
|
||||||
@ -51,7 +83,8 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": "nixpkgs"
|
"naersk": "naersk",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
21
flake.nix
21
flake.nix
@ -5,11 +5,12 @@
|
|||||||
nixpkgs.url = "github:NixOS/nixpkgs/adf7f03d3bfceaba64788e1e846191025283b60d";
|
nixpkgs.url = "github:NixOS/nixpkgs/adf7f03d3bfceaba64788e1e846191025283b60d";
|
||||||
gitignore = { url = "github:hercules-ci/gitignore.nix"; flake = false; };
|
gitignore = { url = "github:hercules-ci/gitignore.nix"; flake = false; };
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
naersk.url = "github:nix-community/naersk";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {self, nixpkgs, flake-utils, gitignore}:
|
outputs = {self, nixpkgs, flake-utils, naersk, gitignore}:
|
||||||
let
|
let
|
||||||
kitchenGen = (import ./nix/default.nix);
|
kitchenGen = (import ./nix/kitchen/default.nix);
|
||||||
trunkGen = (import ./nix/trunk/default.nix);
|
trunkGen = (import ./nix/trunk/default.nix);
|
||||||
kitchenWasmGen = (import ./nix/kitchenWasm/default.nix);
|
kitchenWasmGen = (import ./nix/kitchenWasm/default.nix);
|
||||||
cargoVendorGen = (import ./nix/cargoVendorDeps/default.nix);
|
cargoVendorGen = (import ./nix/cargoVendorDeps/default.nix);
|
||||||
@ -18,7 +19,8 @@
|
|||||||
flake-utils.lib.eachDefaultSystem (system:
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
trunk = trunkGen { inherit pkgs; };
|
naersk-lib = naersk.lib."${system}";
|
||||||
|
trunk = trunkGen { inherit pkgs naersk-lib; };
|
||||||
cargoVendorDeps = cargoVendorGen {
|
cargoVendorDeps = cargoVendorGen {
|
||||||
inherit pkgs version;
|
inherit pkgs version;
|
||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
@ -26,20 +28,21 @@
|
|||||||
kitchenWasm = kitchenWasmGen {
|
kitchenWasm = kitchenWasmGen {
|
||||||
inherit pkgs cargoVendorDeps trunk version;
|
inherit pkgs cargoVendorDeps trunk version;
|
||||||
};
|
};
|
||||||
#kitchen = (kitchenGen {
|
kitchen = (kitchenGen {
|
||||||
# inherit pkgs cargoDeps version kitchenWasm;
|
inherit pkgs version naersk-lib kitchenWasm;# cargoVendorDeps;
|
||||||
## gitignoreSrc = nixpkgs.callPackage gitignore { };
|
# Because it's a workspace we need the other crates available as source
|
||||||
#});
|
root = (pkgs.callPackage gitignore { }).gitignoreSource ./.;
|
||||||
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages = {
|
packages = {
|
||||||
inherit trunk
|
inherit trunk
|
||||||
cargoVendorDeps
|
cargoVendorDeps
|
||||||
kitchenWasm
|
kitchenWasm
|
||||||
# kitchen
|
kitchen
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
defaultPackage = cargoVendorDeps;
|
defaultPackage = kitchen;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -3,7 +3,7 @@
|
|||||||
version ? "0.2.1"}:
|
version ? "0.2.1"}:
|
||||||
let
|
let
|
||||||
cargoDeps = (pkgs.rustPlatform.importCargoLock { inherit lockFile; });
|
cargoDeps = (pkgs.rustPlatform.importCargoLock { inherit lockFile; });
|
||||||
recipes = ./../../recipes;
|
#recipes = ./../../recipes;
|
||||||
in
|
in
|
||||||
with pkgs;
|
with pkgs;
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -14,8 +14,8 @@ stdenv.mkDerivation {
|
|||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -r ${cargoDeps}/* $out/
|
cp -r ${cargoDeps}/* $out/
|
||||||
cp -r ${cargoDeps}/.cargo $out/
|
cp -r ${cargoDeps}/.cargo $out/
|
||||||
cp -r ${recipes} $out/recipes-${version}
|
|
||||||
ls -al $out/
|
ls -al $out/
|
||||||
'';
|
'';
|
||||||
|
#cp -r ${recipes} $out/recipes-${version}
|
||||||
}
|
}
|
||||||
|
|
28
nix/kitchen/default.nix
Normal file
28
nix/kitchen/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{pkgs ? (import <nixpkgs>) {},
|
||||||
|
# Because it's a workspace we need the other crates available as source
|
||||||
|
root,
|
||||||
|
kitchenWasm,
|
||||||
|
version,
|
||||||
|
naersk-lib,
|
||||||
|
#cargoVendorDeps ? (import ./../cargoVendorDeps/default.nix {inherit pkgs version; }),
|
||||||
|
}:
|
||||||
|
with pkgs;
|
||||||
|
#let
|
||||||
|
# vendorDir = "cargo-vendor-dir";
|
||||||
|
# #cargoVendorDrv = cargoVendorDeps;
|
||||||
|
#in
|
||||||
|
(naersk-lib.buildPackage rec {
|
||||||
|
pname = "kitchen";
|
||||||
|
inherit version;
|
||||||
|
# However the crate we are building has it's root in specific crate.
|
||||||
|
src = root;
|
||||||
|
cargoBuildOptions = opts: opts ++ ["-p" "${pname}" ];
|
||||||
|
postPatch = ''
|
||||||
|
echo ln -s ${kitchenWasm} web/dist
|
||||||
|
ln -s ${kitchenWasm} web/dist
|
||||||
|
'';
|
||||||
|
# echo cp -r ${cargoVendorDrv}/* ${vendorDir}/
|
||||||
|
# cp -r ${cargoVendorDrv}/* ${vendorDir}/
|
||||||
|
# mkdir -p .cargo
|
||||||
|
# cp -r ${cargoVendorDrv}/.cargo/* .cargo/
|
||||||
|
})
|
@ -6,7 +6,7 @@
|
|||||||
with pkgs;
|
with pkgs;
|
||||||
let
|
let
|
||||||
pname = "kitchen-wasm";
|
pname = "kitchen-wasm";
|
||||||
src = ./../../web;
|
src = ./../..;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
inherit src pname;
|
inherit src pname;
|
||||||
@ -18,11 +18,9 @@ stdenv.mkDerivation {
|
|||||||
cp -r ./cargo-vendor-dir/.cargo ./
|
cp -r ./cargo-vendor-dir/.cargo ./
|
||||||
cp -r $src/* ./
|
cp -r $src/* ./
|
||||||
'';
|
'';
|
||||||
# NOTE(jwall): For some reason trunk is trying to do something with staging that
|
# TODO(jwall): Build this from the root rather than the src.
|
||||||
# nix doesn't like. We suppress the message for now but I'd like to
|
|
||||||
# know why trunk can't create those directories.
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
trunk build --release --public-url /ui/ --dist ./dist || echo ignoring staging errors for now;
|
trunk build --release --public-url /ui/ --dist ./dist web/index.html || echo ignoring staging errors for now;
|
||||||
pwd
|
pwd
|
||||||
ls -al .
|
ls -al .
|
||||||
'';
|
'';
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
{pkgs ? (import <nixpkgs>) {}}:
|
{pkgs ? (import <nixpkgs>) {},
|
||||||
|
naersk-lib,
|
||||||
|
}:
|
||||||
with pkgs;
|
with pkgs;
|
||||||
rustPlatform.buildRustPackage rec {
|
naersk-lib.buildPackage rec {
|
||||||
pname = "trunk";
|
pname = "trunk";
|
||||||
version = "v0.14.0";
|
version = "v0.14.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
@ -9,7 +11,6 @@ rustPlatform.buildRustPackage rec {
|
|||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-69MQDIF79pSuaOgZEIqb/ESPQzL7MUiQaJaxPccGxo8=";
|
sha256 = "sha256-69MQDIF79pSuaOgZEIqb/ESPQzL7MUiQaJaxPccGxo8=";
|
||||||
};
|
};
|
||||||
cargoSha256 = "sha256-RPE2wMggD8nXpuUkRsvG5wxIWCHifD4RLLLPkq8HOEQ=";
|
|
||||||
|
|
||||||
# Trunk uses the network in it's test which is lame. We'll work around
|
# Trunk uses the network in it's test which is lame. We'll work around
|
||||||
# by disabling here for now.
|
# by disabling here for now.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user