# CLIGetArgs

This method will parse the cli arguments and return a struct of the following:

* `options` - A struct of the options
* `positionals` - An array of the positional arguments

The options can be provided in the following formats:

* `--option` - A boolean option
* `--option=value` - An option with a value
* `--option="value"` - An option with a quoted value
* `--option='value'` - An option with a quoted value
* `-o=value` - A shorthand option with a value
* `-o` - A shorthand boolean option
* `--!option` - A negation option

For example, the following cli arguments:

```
 --debug --!verbose --bundles=Spec -o='/path/to/file' -v my/path/template
 
```

Will be parsed into the following struct:

```
 {
 "options" :  {
    	"debug": true,
   	"verbose": false,
  	"bundles": "Spec",
 	   	"o": "/path/to/file",
 	   	"v": true
 },
 "positionals": [ "my/path/template" ]
 
```

## Some Ground Rules

* Options are prefixed with --
* Shorthand options are prefixed with -
* Options can be negated with --! or --no-
* Options can have values separated by =
* Values can be quoted with single or double quotes
* Repeated options will override the previous value

## Method Signature

```
CLIGetArgs()
```

### Arguments

This function does not accept any arguments

## Examples

## Related

* [CLIClear](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/cli/cliclear)
* [CLIExit](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/cli/cliexit)
* [CLIRead](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/cli/cliread)
