diff --git a/cli.js b/cli.js index b519b18d..370afd26 100755 --- a/cli.js +++ b/cli.js @@ -1,12 +1,39 @@ #!/usr/bin/env node -import fs from 'node:fs' import { globbySync } from 'globby' +import fs from 'node:fs' import sortPackageJson from './index.js' const isCheckFlag = (argument) => argument === '--check' || argument === '-c' +const isHelpFlag = (argument) => argument === '--help' || argument === '-h' +const isVersionFlag = (argument) => + argument === '--version' || argument === '-v' const cliArguments = process.argv.slice(2) const isCheck = cliArguments.some(isCheckFlag) +const isHelp = cliArguments.some(isHelpFlag) +const isVersion = cliArguments.some(isVersionFlag) + +if (isHelp) { + console.log( + `Usage: sort-package-json [OPTION...] [FILE...] +Sort npm package.json files. Default: ./package.json +Strings passed as files are parsed as globs. + + -c, --check check if FILES are sorted + -h, --help display this help and exit + -v, --version display the version and exit + `, + ) + process.exit(0) +} +if (isVersion) { + const packageJsonUrl = new URL('package.json', import.meta.url) + const packageJsonBuffer = fs.readFileSync(packageJsonUrl) + const { version } = JSON.parse(packageJsonBuffer) + + console.log(`sort-package-json ${version}`) + process.exit(0) +} const patterns = cliArguments.filter((argument) => !isCheckFlag(argument))