# OptsLib

A very simple Options parser and command-line arguments
handling library for PHP.

## Usage

The usage of this library is very simple, there are
two functions that you can use to parse options.

### parseArgument()

Can be used to parse a single argument string/array, this is useful for
parsing command line arguments. The second argument is the maximum number
of arguments that can be parsed, this is to prevent infinite loops.

```php
<?php

    require_once('ncc');
    import('net.nosial.optslib', 'latest');
    
    $input = '--foo --bar="test" -y --username test';
    $parsed = \OptsLib\Parse::parseArgument($input);
    
    echo $parsed['foo']; // true
    echo $parsed['bar']; // "test"
    echo $parsed['y']; // true
    echo $parsed['username']; // "test"
```

### getArguments()

This method is used to access the `$argv` array
if it's not set, an empty array is returned.

```php
<?php

    require_once('ncc');
    import('net.nosial.optslib', 'latest');
    
    $arguments = \OptsLib\Parse::getArguments();
    
    echo $arguments['output-file']; // "test.txt"
    echo $arguments['input-file']; // "test.txt"
    echo $arguments['log']; // "verbose"
```


## building

In order to use this library you need to install it
via `ncc`, this can be done using NCC's command-line
interface or mentioning this library in your `package.json`
file's dependencies, for instance:

```json
{
  "dependencies": {
    "net.nosial.optslib": "nosial/libs.opts=latest@n64"
  }
}
```

If you don't have N64's repository added to your NCC
configuration, you can add it using the following command:

```bash
$ sudo ncc source add --name n64 --type gitlab --host git.n64.cc
```


Building is done using [NCC](https://git.n64.cc/nosial/ncc), 
you can build it using the following command:

```bash
$ git clone https://git.n64.cc/nosial/libs/optslib.git
$ cd optlibs

$ ncc build --config release
# or
$ make release
```

### installing

Once you have built the library, you can install it using 
the following command:

```bash
$ sudo ncc install -p="build/release/net.nosial.optslib.ncc"
# or
$ sudo make install
```

## License

This library is licensed under the MIT license, see the LICENSE file
for more information.

## Contributing

If you want to contribute to this project, you can do so by
creating a merge request on the [GitLab repository](https://git.n64.cc/nosial/libs/optslib).

## Contact

If you have any questions, you can contact us on [Telegram](https://t.me/NosialDiscussions).