2017 © Pedro Peláez
 

library getopt

Option parsing in Hack

image

hhpack/getopt

Option parsing in Hack

  • Monday, June 25, 2018
  • by holyshared
  • Repository
  • 1 Watchers
  • 0 Stars
  • 329 Installations
  • Hack
  • 3 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 27 Versions
  • 2 % Grown

The README.md

getopt

Latest Stable Version CircleCI Dependency Status, (*1)

Basic usage

The method of parsing command line arguments is as follows.
Define an option that takes no arguments, use the on function.
Define an option to take one argument, use the take_on function., (*2)

use HHPack\Getopt as cli;

final class Options {
    public bool $help = false;
    public bool $version = false;
    public string $fileName = 'test';
}

$options = new Options();

$parser = cli\optparser([
    cli\take_on([ '-n', '--name' ], 'NAME', 'file name', ($name) ==> { $options->fileName = $name; }),
    cli\on([ '-h', '--help' ], 'display help message', () ==> { $options->help = true; }),
    cli\on([ '-v', '--version' ], 'display version', () ==> { $options->version = true; })
]);

$args = $parser->parse($argv);

if ($options->help === true) {
    echo 'help on', PHP_EOL;
}

if ($options->version === true) {
    echo 'version on', PHP_EOL;
}

if ($options->fileName !== 'test') {
    echo 'name = ', $fileName, PHP_EOL;
}

CLI Application

If you want to create cli application, we recommend using ArgumentParser.
ArgumentParser implements an interface to display usage, program version., (*3)

use HHPack\Getopt as cli;
use HHPack\Getopt\App\{ ArgumentParser };

final class CliApplication
{

    private bool $help = false;
    private bool $version = false;
    private string $fileName = 'test';
    private ArgumentParser $argParser;

    public function __construct()
    {
        $this->argParser = cli\app('example', '1.0.0')
            ->description("This cli application is example.\n\n")
            ->usage("  {app.name} [OPTIONS]\n\n")
            ->options([
                cli\on(['-h', '--help'], 'display help message', () ==> {
                    $this->help = true;
                }),
                cli\on(['-v', '--version'], 'display version', () ==> {
                    $this->version = true;
                }),
                cli\take_on(['-n', '--name'], 'NAME', 'file name', ($name) ==> {
                    $this->fileName = $name;
                })
            ]);
    }

    public function run(Traversable<string> $argv): void
    {
        $this->argParser->parse($argv);

        if ($this->help) {
            $this->argParser->displayHelp();
        } else if ($this->version) {
            $this->argParser->displayVersion();
        } else {
            echo "file name: ", $this->fileName, PHP_EOL;
        }
    }
}

(new CliApplication())->run($argv);

Run the test

composer install
composer test

The Versions

25/06 2018

dev-master

9999999-dev

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

25/06 2018

1.5.3

1.5.3.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

09/05 2018

1.5.2

1.5.2.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

28/03 2018

1.5.1

1.5.1.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

24/01 2018

1.5.0

1.5.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

24/01 2018

dev-feature/hhvm3.24

dev-feature/hhvm3.24

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

03/10 2017

1.4.1

1.4.1.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

01/09 2017

1.4.0

1.4.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

28/08 2017

1.3.0

1.3.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

28/08 2017

dev-feature/options

dev-feature/options

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

27/08 2017

1.2.0

1.2.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

21/08 2017

1.1.0

1.1.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

17/08 2017

1.0.1

1.0.1.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

15/08 2017

1.0.0

1.0.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

13/08 2017

0.9.0

0.9.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

08/07 2017

0.8.1

0.8.1.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.18.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

08/07 2017

0.8.0

0.8.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.18.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

18/02 2017

0.7.0

0.7.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

18/02 2017

dev-feature/namespace

dev-feature/namespace

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

31/01 2016

0.6.1

0.6.1.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

31/01 2016

0.6.0

0.6.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

31/01 2016

0.5.0

0.5.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

21/01 2016

0.4.1

0.4.1.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

02/01 2016

0.4.0

0.4.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

02/01 2016

0.3.0

0.3.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

31/12 2015

0.2.0

0.2.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option

28/12 2015

0.1.0

0.1.0.0

Option parsing in Hack

  Sources   Download

MIT

The Requires

  • hhvm >=3.11.0

 

The Development Requires

by Noritaka Horio

parser cli hack hhvm option