30 lines
778 B
Nix
30 lines
778 B
Nix
{ lib, pkgs }:
|
|
|
|
let
|
|
npmPackages = [
|
|
"@enact/cli"
|
|
"@webos-tools/cli"
|
|
"patch-package"
|
|
];
|
|
in
|
|
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
# Ensure required npm CLI tools are installed in the user prefix.
|
|
NPM_BIN="${pkgs.nodejs}/bin/npm"
|
|
export NPM_CONFIG_PREFIX="$HOME/.npm-packages"
|
|
export PATH="${pkgs.nodejs}/bin:$NPM_CONFIG_PREFIX/bin:$PATH"
|
|
|
|
if [[ ! -x "$NPM_BIN" ]]; then
|
|
echo "npm not found; skipping npm CLI installation step"
|
|
exit 0
|
|
fi
|
|
|
|
for pkg in ${lib.concatStringsSep " " (map lib.escapeShellArg npmPackages)}; do
|
|
if "$NPM_BIN" list -g --depth=0 "$pkg" >/dev/null 2>&1; then
|
|
echo "npm package already installed: $pkg"
|
|
else
|
|
echo "installing npm package: $pkg"
|
|
"$NPM_BIN" install -g "$pkg"
|
|
fi
|
|
done
|
|
''
|