diff --git a/README.md b/README.md index 7d2a0c2..912b1fb 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ The `fs` option allows you to pass a different filesystem handler, such as [memf You can run this module from your command line: ```bash -get-folder-size --folder="/my/folder" --ignore="node_modules" +get-folder-size --folder "/my/folder" --ignore "node_modules" ``` The optional `ignore` statement takes a regex pattern. diff --git a/bin/get-folder-size.js b/bin/get-folder-size.js index 09a5c35..19b2a8d 100755 --- a/bin/get-folder-size.js +++ b/bin/get-folder-size.js @@ -1,22 +1,35 @@ #!/usr/bin/env node import getFolderSize from "../index.js"; -import gar from "gar"; -import path from "node:path"; +import { parseArgs } from "node:util"; +import { resolve } from "node:path"; -const argv = gar(process.argv.slice(2)); +const args = parseArgs({ + args: process.argv.slice(2), + options: { + folder: { + short: "f", + type: "string", + }, + ignore: { + short: "i", + type: "string", + }, + }, + allowPositionals: true, +}); // --folder or -f or last argument passed -const folder = argv.folder || argv.f || argv._[argv._.length - 1]; +const folder = args.values.folder || args.positionals.at(-1); if (!folder) { console.error("missing folder argument"); console.error("\n Usage:\n"); - console.error("get-folder-size --folder=/home/alex/www"); + console.error(`get-folder-size --folder "/home/alex/www"`); process.exit(1); } -const ignore = argv.ignore || argv.i ? new RegExp(argv.ignore || argv.i) : null; +const ignore = args.values.ignore ? new RegExp(args.values.ignore) : undefined; -const size = await getFolderSize.strict(path.resolve(folder), { ignore }); +const size = await getFolderSize.strict(resolve(folder), { ignore }); console.log((size / 1000 / 1000).toFixed(2) + " MB"); diff --git a/package-lock.json b/package-lock.json index e649ba2..d68969f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,6 @@ "name": "get-folder-size", "version": "4.0.0", "license": "MIT", - "dependencies": { - "gar": "^1.0.4" - }, "bin": { "get-folder-size": "bin/get-folder-size.js" }, @@ -2989,13 +2986,6 @@ "dev": true, "license": "ISC" }, - "node_modules/gar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", - "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT" - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", diff --git a/package.json b/package.json index 6a9e1fc..ad54147 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,6 @@ "engines": { "node": ">=18.11.0" }, - "dependencies": { - "gar": "^1.0.4" - }, "devDependencies": { "@eslint/js": "^9.7.0", "@types/eslint__js": "^8.42.3",