Skip to content

Commit 6540eac

Browse files
committed
simplify flake
1 parent f8905c7 commit 6540eac

File tree

1 file changed

+66
-51
lines changed

1 file changed

+66
-51
lines changed

β€Žflake.nix

+66-51
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,78 @@
11
{
2-
description = "Eliza Development Environment";
2+
description = "Your project description";
33

44
inputs = {
55
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
66
pnpm2nix.url = "github:nzbr/pnpm2nix-nzbr";
7+
flake-utils.url = "github:numtide/flake-utils";
78
};
89

910
outputs = {
1011
self,
1112
nixpkgs,
1213
pnpm2nix,
13-
}: let
14-
systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
15-
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system);
16-
in {
17-
devShells = forAllSystems (system: let
18-
pkgs = import nixpkgs {
19-
inherit system;
20-
overlays = [pnpm2nix.overlays.default];
21-
};
22-
23-
nodePackages =
24-
(import ./default.nix {
25-
inherit pkgs system;
26-
sha256 = null;
27-
})
28-
.buildNodePackages
29-
pkgs;
30-
in {
31-
default = pkgs.mkShell {
32-
buildInputs = with pkgs; [
33-
nodePackages.nodejs
34-
nodePackages.pnpm
35-
python3
36-
pkg-config
37-
];
38-
};
39-
});
40-
41-
lib = {
42-
getPlatformString = system: platform:
43-
if platform == "nodejs"
44-
then
45-
if builtins.match ".*darwin.*" system != null
46-
then
47-
if builtins.match ".*aarch64.*" system != null
48-
then "darwin-arm64"
49-
else "darwin-x64"
50-
else if builtins.match ".*aarch64.*" system != null
51-
then "linux-arm64"
52-
else "linux-x64"
53-
else if builtins.match ".*darwin.*" system != null
54-
then
55-
if builtins.match ".*aarch64.*" system != null
56-
then "macos-arm64"
57-
else "macos-x64"
58-
else if builtins.match ".*aarch64.*" system != null
59-
then "linux-arm64"
60-
else "linux-x64";
61-
};
62-
};
14+
flake-utils,
15+
}:
16+
flake-utils.lib.eachDefaultSystem (
17+
system: let
18+
pkgs = nixpkgs.legacyPackages.${system};
19+
pnpm2nix-lib = pnpm2nix.packages.${system};
20+
in {
21+
packages.default = pnpm2nix-lib.mkPnpmPackage {
22+
src = ./.;
23+
24+
# Install dependencies in source directory for workspace support
25+
installInPlace = true;
26+
27+
# Run recursive build across all workspace packages
28+
script = "-r build";
29+
30+
# Copy all build outputs
31+
distDir = ".";
32+
33+
buildPhase = ''
34+
export HOME=$(mktemp -d)
35+
pnpm install --frozen-lockfile
36+
pnpm -r build
37+
'';
38+
39+
installPhase = ''
40+
mkdir -p $out
41+
cp -r . $out/
42+
'';
43+
};
44+
45+
devShells.default = pkgs.mkShell {
46+
packages = with pkgs; [
47+
nodePackages.pnpm
48+
cairo
49+
pango
50+
libpng
51+
];
52+
53+
shellHook = ''
54+
export PATH="$PWD/node_modules/.bin:$PATH"
55+
export PKG_CONFIG_PATH="${pkgs.cairo}/lib/pkgconfig:${pkgs.pango}/lib/pkgconfig:${pkgs.libpng}/lib/pkgconfig:$PKG_CONFIG_PATH"
56+
57+
echo "πŸ€– Eliza development environment loaded πŸš€"
58+
echo "------------------------------------------"
59+
echo "Using:"
60+
echo " - Node.js $(node --version)"
61+
echo " - pnpm $(pnpm --version)"
62+
63+
echo """
64+
πŸ—οΈ Quickstart Guide:
65+
------------------------
66+
β”Œβ”€> 1. pnpm i (Install dependencies)
67+
β”‚ 2. pnpm build (Build project)
68+
└─ 3. pnpm clean (Clear Artifacts, for a fresh start)
69+
4. pnpm test (Run tests)
70+
71+
For more commands, run: pnpm --help
72+
------------------------
73+
"""
74+
'';
75+
};
76+
}
77+
);
6378
}

0 commit comments

Comments
Β (0)