Another iteration

This commit is contained in:
Reinier Criel 2025-11-06 10:26:26 -08:00
parent f400c5576a
commit 28d24bb6ea
12 changed files with 134 additions and 107 deletions

View file

@ -1,22 +1,25 @@
#!/usr/bin/env node
import { initializePackageManager } from "../src/packagemanager/currentPackageManager.js";
import { setCurrentPipInvocation, PIP_INVOCATIONS, PIP_PACKAGE_MANAGER } from "../src/packagemanager/pip/pipSettings.js";
import { setEcoSystem, ECOSYSTEM_PY } from "../src/config/settings.js";
import { main } from "../src/main.js";
const argv = process.argv.slice(2);
// Set eco system
setEcoSystem(ECOSYSTEM_PY);
const supportedArgs = ["pip", "pip3"];
if (argv[0] === "-m" && argv[1] && supportedArgs.includes(argv[1])) {
// Strip nodejs and wrapper script from args
let argv = process.argv.slice(2);
if (argv[0] === '-m' && argv[1] === 'pip') {
setEcoSystem(ECOSYSTEM_PY);
// python3 -m pip or python3 -m pip3: always use pip3 package manager
initializePackageManager("pip3");
var exitCode = await main(argv.slice(2));
process.exit(exitCode);
setCurrentPipInvocation(PIP_INVOCATIONS.PY3_PIP);
initializePackageManager(PIP_PACKAGE_MANAGER);
// Strip '-m pip' or '-m pip3' from args if present
argv = argv.slice(2);
var exitCode = await main(argv);
process.exit(exitCode);
} else {
// Fallback: run the real python3
const { spawn } = await import("child_process");
spawn("python3", argv, { stdio: "inherit" });
// Forward to real python3 binary for non-pip flows
const { spawn } = await import('child_process');
spawn('python3', argv, { stdio: 'inherit' });
}