58 lines
1.2 KiB
Bash
58 lines
1.2 KiB
Bash
# shellcheck shell=bash
|
|
|
|
pnpmConfigHook() {
|
|
echo "Executing pnpmConfigHook"
|
|
|
|
if [ -n "${pnpmRoot-}" ]; then
|
|
pushd "$pnpmRoot"
|
|
fi
|
|
|
|
if [ -z "${pnpmDeps-}" ]; then
|
|
echo "Error: 'pnpmDeps' must be set when using pnpmConfigHook."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Configuring pnpm store"
|
|
|
|
export HOME=$(mktemp -d)
|
|
export STORE_PATH=$(mktemp -d)
|
|
|
|
cp -Tr "$pnpmDeps" "$STORE_PATH"
|
|
chmod -R +w "$STORE_PATH"
|
|
|
|
pnpm config set store-dir "$STORE_PATH"
|
|
|
|
if [[ -n "$pnpmWorkspace" ]]; then
|
|
echo "'pnpmWorkspace' is deprecated, please migrate to 'pnpmWorkspaces'."
|
|
exit 2
|
|
fi
|
|
|
|
echo "Installing dependencies"
|
|
if [[ -n "$pnpmWorkspaces" ]]; then
|
|
local IFS=" "
|
|
for ws in $pnpmWorkspaces; do
|
|
pnpmInstallFlags+=("--filter=$ws")
|
|
done
|
|
fi
|
|
|
|
runHook prePnpmInstall
|
|
|
|
pnpm install \
|
|
--offline \
|
|
--ignore-scripts \
|
|
"${pnpmInstallFlags[@]}" \
|
|
--frozen-lockfile
|
|
|
|
|
|
echo "Patching scripts"
|
|
|
|
patchShebangs node_modules/{*,.*}
|
|
|
|
if [ -n "${pnpmRoot-}" ]; then
|
|
popd
|
|
fi
|
|
|
|
echo "Finished pnpmConfigHook"
|
|
}
|
|
|
|
postConfigureHooks+=(pnpmConfigHook)
|