PowerShell resolves ExternalScript (.ps1) ahead of Application (.cmd), and both lived in the directory the installer puts on PATH -- so in PowerShell `ncp` ran the .ps1 and was execution-policy-bound again, the exact thing the .cmd exists to avoid. Its other justification (giving ncp to pwsh on Linux) stopped being true once /usr/local/bin/ncp existed: pwsh runs a PATH symlink to a shell script as an Application. A test now prevents the file coming back. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 lines
798 B
Bash
17 lines
798 B
Bash
#!/usr/bin/env bash
|
|
# ncp - Linux entry point. The CLI itself is management/ncp.py, which runs
|
|
# unchanged on Windows too (see management/ncp.cmd); this stays a shell script
|
|
# because ~/.bashrc, launch_nexus.sh, bin/restore-linux.sh, controlpanel.py,
|
|
# bin/panel/nexus-popup.py and management/nexus-app.sh all invoke this path.
|
|
#
|
|
# Resolved from this file rather than $HOME/nexus-core, so a clone in a scratch
|
|
# directory drives itself instead of reaching into the real install.
|
|
NEXUS_ROOT="$(cd "$(dirname "$(realpath "$0")")/.." && pwd)"
|
|
|
|
# ncp.py needs psutil (venv), but its backup/restore path delegates to the
|
|
# stdlib-only bin/sync.py and must work before the venv is built.
|
|
PY="$NEXUS_ROOT/Promethean/bin/python3"
|
|
[ -x "$PY" ] || PY=python3
|
|
|
|
exec "$PY" "$NEXUS_ROOT/management/ncp.py" "$@"
|