lukeed / tsm

TypeScript Module Loader
MIT License
1.18k stars 19 forks source link

tsm as shebang should allow scripts to respond to --help and --version #22

Open BoruiGu opened 2 years ago

BoruiGu commented 2 years ago

for example given this my-cli.ts script

#!/usr/bin/env tsm

if (process.argv.includes('-h') || process.argv.includes('--help')) {
    console.log('my-cli help')
    process.exit(0)
}

if (process.argv.includes('-v') || process.argv.includes('--version')) {
    console.log(`my-cli version'`)
    process.exit(0)
}

when i run ./my-cli.ts -h or ./my-cli.ts -v, i would expect it to output the help / version of my-cli

however currently the help / version of tsm gets printed instead

in contrast, it behaves as expected when using node in shebang. if changing it to my-cli.js

#!/usr/bin/env node

if (process.argv.includes('-h') || process.argv.includes('--help')) {
    console.log('my-cli help')
    process.exit(0)
}

if (process.argv.includes('-v') || process.argv.includes('--version')) {
    console.log(`my-cli version'`)
    process.exit(0)
}

and run ./my-cli.js -h or ./my-cli.js -v, it correctly output the help / version of my-cli