Rename package directories to match t3code outputs
- Move server and desktop Nix packages under `packages/t3code-*` - Update flake outputs and README references to the new names
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
{
|
||||
lib,
|
||||
src,
|
||||
stdenv,
|
||||
bun,
|
||||
makeBinaryWrapper,
|
||||
node-gyp,
|
||||
nodejs,
|
||||
python3,
|
||||
writableTmpDirAsHomeHook,
|
||||
}: let
|
||||
common = import ../common.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
bun
|
||||
nodejs
|
||||
writableTmpDirAsHomeHook
|
||||
;
|
||||
};
|
||||
serverPackageJson = lib.importJSON "${src}/apps/server/package.json";
|
||||
|
||||
pname = "t3code-server";
|
||||
version = serverPackageJson.version;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
inherit pname version;
|
||||
inherit src;
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nodeModules = common.mkNodeModules {
|
||||
inherit (finalAttrs) pname version src;
|
||||
outputHash = "sha256-eXNOHRuNv9XFhXmsFtkunZswtRPd8gzJB1Jdw2DxYZY=";
|
||||
filters = [
|
||||
"."
|
||||
"./apps/server"
|
||||
"./apps/web"
|
||||
"./packages/client-runtime"
|
||||
"./packages/contracts"
|
||||
"./packages/effect-acp"
|
||||
"./packages/effect-codex-app-server"
|
||||
"./packages/shared"
|
||||
];
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
bun
|
||||
makeBinaryWrapper
|
||||
node-gyp
|
||||
nodejs
|
||||
python3
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
configurePhase = common.mkNodePtyConfigurePhase {
|
||||
nodeModules = finalAttrs.nodeModules;
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export HOME="$TMPDIR"
|
||||
export BUN_INSTALL_CACHE_DIR="$(mktemp -d)"
|
||||
|
||||
bun run --cwd apps/web build
|
||||
bun run --cwd apps/server build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out/libexec/t3code/apps/server"
|
||||
mkdir -p "$out/libexec/t3code/apps"
|
||||
mkdir -p "$out/libexec/t3code/packages"
|
||||
|
||||
cp -R --no-preserve=mode node_modules "$out/libexec/t3code/"
|
||||
cp -R --no-preserve=mode apps/server/dist "$out/libexec/t3code/apps/server/"
|
||||
cp -R --no-preserve=mode apps/web "$out/libexec/t3code/apps/"
|
||||
cp -R --no-preserve=mode packages/client-runtime "$out/libexec/t3code/packages/"
|
||||
cp -R --no-preserve=mode packages/contracts "$out/libexec/t3code/packages/"
|
||||
cp -R --no-preserve=mode packages/effect-acp "$out/libexec/t3code/packages/"
|
||||
cp -R --no-preserve=mode packages/effect-codex-app-server "$out/libexec/t3code/packages/"
|
||||
cp -R --no-preserve=mode packages/shared "$out/libexec/t3code/packages/"
|
||||
|
||||
makeWrapper ${lib.getExe nodejs} "$out/bin/t3" \
|
||||
--add-flags "$out/libexec/t3code/apps/server/dist/bin.mjs"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "T3 Code web/server app";
|
||||
homepage = "https://github.com/pingdotgg/t3code";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "t3";
|
||||
platforms = lib.platforms.unix;
|
||||
sourceProvenance = with lib.sourceTypes; [fromSource];
|
||||
};
|
||||
})
|
||||
Reference in New Issue
Block a user