mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-19 00:34:23 +01:00
Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
53 lines
1.1 KiB
Nix
53 lines
1.1 KiB
Nix
{ hash, lib, stdenvNoCC, bun, cacert, curl }:
|
|
args:
|
|
stdenvNoCC.mkDerivation {
|
|
pname = "opencode-node_modules";
|
|
version = args.version;
|
|
src = args.src;
|
|
|
|
impureEnvVars =
|
|
lib.fetchers.proxyImpureEnvVars
|
|
++ [
|
|
"GIT_PROXY_COMMAND"
|
|
"SOCKS_SERVER"
|
|
];
|
|
|
|
nativeBuildInputs = [ bun cacert curl ];
|
|
|
|
dontConfigure = true;
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
export HOME=$(mktemp -d)
|
|
export BUN_INSTALL_CACHE_DIR=$(mktemp -d)
|
|
bun install \
|
|
--cpu="*" \
|
|
--os="*" \
|
|
--frozen-lockfile \
|
|
--ignore-scripts \
|
|
--no-progress \
|
|
--linker=isolated
|
|
bun --bun ${args.canonicalizeScript}
|
|
bun --bun ${args.normalizeBinsScript}
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
mkdir -p $out
|
|
while IFS= read -r dir; do
|
|
rel="''${dir#./}"
|
|
dest="$out/$rel"
|
|
mkdir -p "$(dirname "$dest")"
|
|
cp -R "$dir" "$dest"
|
|
done < <(find . -type d -name node_modules -prune | sort)
|
|
runHook postInstall
|
|
'';
|
|
|
|
dontFixup = true;
|
|
|
|
outputHashAlgo = "sha256";
|
|
outputHashMode = "recursive";
|
|
outputHash = hash;
|
|
}
|