DOCUMENTATION: Clarify 2 forms of flag in ns.flags (#1283)

This commit is contained in:
catloversg 2024-05-17 18:57:10 +07:00 committed by GitHub
parent 7a4a973c06
commit 585e089976
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 33 additions and 14 deletions

@ -28,6 +28,12 @@ RAM cost: 0 GB
Allows Unix-like flag parsing. Allows Unix-like flag parsing.
We support 2 forms:
- Short form: the flag contains only 1 character, e.g. -v.
- Long form: the flag contains more than 1 character, e.g. --version.
## Example ## Example
@ -38,21 +44,24 @@ export async function main(ns) {
['server', 'foodnstuff'], // a default string means this flag is a string ['server', 'foodnstuff'], // a default string means this flag is a string
['exclude', []], // a default array means this flag is a default array of string ['exclude', []], // a default array means this flag is a default array of string
['help', false], // a default boolean means this flag is a boolean ['help', false], // a default boolean means this flag is a boolean
['v', false], // short form
]); ]);
ns.tprint(data); ns.tprint(data);
} }
// [home ~/]> run example.js // [home ~/]> run example.js
// {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false} // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false,"v":false}
// [home ~/]> run example.js --delay 3000 // [home ~/]> run example.js --delay 3000
// {"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000} // {"_":[],"delay":3000,"server":"foodnstuff","exclude":[],"help":false,"v":false}
// [home ~/]> run example.js --delay 3000 --server harakiri-sushi // [home ~/]> run example.js --delay 3000 --server harakiri-sushi
// {"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"} // {"_":[],"delay":3000,"server":"harakiri-sushi","exclude":[],"help":false,"v":false}
// [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world // [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world
// {"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"} // {"_":["hello","world"],"delay":3000,"server":"harakiri-sushi","exclude":[],"help":false,"v":false}
// [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b // [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b
// {"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]} // {"_":["hello","world"],"delay":3000,"server":"harakiri-sushi","exclude":["a","b"],"help":false,"v":false}
// [home ~/]> run example.script --help // [home ~/]> run example.js --help
// {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true} // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true,"v":false}
// [home ~/]> run example.js -v
// {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false,"v":true}
``` ```

@ -7413,6 +7413,13 @@ export interface NS {
* RAM cost: 0 GB * RAM cost: 0 GB
* *
* Allows Unix-like flag parsing. * Allows Unix-like flag parsing.
*
* We support 2 forms:
*
* - Short form: the flag contains only 1 character, e.g. -v.
*
* - Long form: the flag contains more than 1 character, e.g. --version.
*
* @example * @example
* ```js * ```js
* export async function main(ns) { * export async function main(ns) {
@ -7421,22 +7428,25 @@ export interface NS {
* ['server', 'foodnstuff'], // a default string means this flag is a string * ['server', 'foodnstuff'], // a default string means this flag is a string
* ['exclude', []], // a default array means this flag is a default array of string * ['exclude', []], // a default array means this flag is a default array of string
* ['help', false], // a default boolean means this flag is a boolean * ['help', false], // a default boolean means this flag is a boolean
* ['v', false], // short form
* ]); * ]);
* ns.tprint(data); * ns.tprint(data);
* } * }
* *
* // [home ~/]> run example.js * // [home ~/]> run example.js
* // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false} * // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false,"v":false}
* // [home ~/]> run example.js --delay 3000 * // [home ~/]> run example.js --delay 3000
* // {"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000} * // {"_":[],"delay":3000,"server":"foodnstuff","exclude":[],"help":false,"v":false}
* // [home ~/]> run example.js --delay 3000 --server harakiri-sushi * // [home ~/]> run example.js --delay 3000 --server harakiri-sushi
* // {"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"} * // {"_":[],"delay":3000,"server":"harakiri-sushi","exclude":[],"help":false,"v":false}
* // [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world * // [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world
* // {"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"} * // {"_":["hello","world"],"delay":3000,"server":"harakiri-sushi","exclude":[],"help":false,"v":false}
* // [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b * // [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b
* // {"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]} * // {"_":["hello","world"],"delay":3000,"server":"harakiri-sushi","exclude":["a","b"],"help":false,"v":false}
* // [home ~/]> run example.script --help * // [home ~/]> run example.js --help
* // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true} * // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true,"v":false}
* // [home ~/]> run example.js -v
* // {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false,"v":true}
* ``` * ```
*/ */
flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] }; flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] };