承接 facebook/hh-clilib 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

facebook/hh-clilib

最新稳定版本:v2.6.0

Composer 安装命令:

composer require facebook/hh-clilib

包简介

README 文档

README

Continuous Integration

This library provides basic command-line handling, including:

  • parsing of ARGV
  • interactive TTY detection
  • color TTY detection

It aims for as much code as possible to be in strict mode.

Installation

hhvm composer.phar require facebook/hh-clilib

Examples

In src/MyCLI.hh:

// MyCLI.hh
<?hh // strict

use type Facebook\CLILib\CLIBase;

final class MyCLI extends CLIBase {
  <<__Override>>
  public async function mainAsync(): Awaitable<int> {
    $this->getStdout()->write("Hello, world!");
    return 0;
  }
}

In bin/mycli:

<?hh // not strict because of top-level statements.

require_once(__DIR__.'/../vendor/hh_autoload.php');

MyCLI::main();

Options

Options are optional, always have a long form (e.g. --foo), may have a short form (e.g. -f), and may require a value (e.g. --foo=bar or --foo bar).

You can specify supported options by implemented getSupportedOptions(); --help is always supported.

<<__Override>>
protected function getSupportedOptions(): vec<CLIOptions\CLIOption> {
	return vec[
		CLIOptions\flag(
			() ==> { $this->verbosity++; },
			"Increase output verbosity",
			'--verbose',
			'-v',
		),
		CLIOptions\with_required_enum(
			OutputFormat::class,
			$f ==> { $this->format = $f; },
			Str\format(
				"Desired output format (%s). Default: %s",
				Str\join(OutputFormat::getValues(), '|'),
				(string) $this->format,
			),
			'--format',
			'-f',
		),
		CLIOptions\with_required_string(
			$s ==> { $this->outputRoot = $s; },
			"Directory for output files. Default: working directory",
			'--output',
			'-o',
		),
	];
}

Arguments

Arguments do not have a name, and may be required. To support arguments, extend CLIWithArguments or CLIWithRequiredArguments.

Arguments are always strings, and can be retrieved via ->getArguments();

Contributing

See CONTRIBUTING.md.

License

hh-clilib is MIT-licensed.

统计信息

  • 总下载量: 762.21k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 1
  • 依赖项目数: 15
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 21
  • Forks: 11
  • 开发语言: Hack

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-06-12