bitburner-src/markdown/bitburner.ns.flags.md
Snarling 08e71c732b
Threads are a positive integer (#366)
* Added new positive integer ns validation helper
* `run`, `exec`, and `spawn` verify threads as a positive integer.
* `run` terminal command also fails if the provided threadcount is not a positive integer.
* Removed some references to .script files in various documentation, and removed some of the NS1 example blocks
2023-02-14 01:32:01 -05:00

1.9 KiB

Home > bitburner > NS > flags

NS.flags() method

Parse command line flags.

Signature:

flags(schema: [string, string | number | boolean | string[]][]): { [key: string]: ScriptArg | string[] };

Parameters

Parameter Type Description
schema [string, string | number | boolean | string[]][]

Returns:

{ [key: string]: ScriptArg | string[] }

Remarks

RAM cost: 0 GB

Allows Unix-like flag parsing.

Example

export async function main(ns) {
  const data = ns.flags([
    ['delay', 0], // a default number means this flag is a number
    ['server', 'foodnstuff'], //  a default string means this flag is a 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
  ]);
  ns.tprint(data);
}

// [home ~/]> run example.js
// {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false}
// [home ~/]> run example.js --delay 3000
// {"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000}
// [home ~/]> run example.js --delay 3000 --server harakiri-sushi
// {"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
// [home ~/]> run example.js --delay 3000 --server harakiri-sushi hello world
// {"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
// [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"]}
// [home ~/]> run example.script --help
// {"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true}