Ensure consistent server and storage arguments, fix storage path for setup

This commit is contained in:
Niklas Keller
2016-03-23 20:02:25 +01:00
parent 9ea97f18e1
commit c36ced9b7c
6 changed files with 42 additions and 58 deletions

View File

@@ -23,7 +23,7 @@
"require-dev": {
"phpunit/phpunit": "^5",
"fabpot/php-cs-fixer": "^1.9",
"macfja/phar-builder": "^0.2.3"
"macfja/phar-builder": "dev-master#bf48160bd6bdf702557ff213e6837710c1dbf572"
},
"license": "MIT",
"authors": [
@@ -47,7 +47,7 @@
"compression": "GZip",
"name": "acme.phar",
"output-dir": "build",
"include": ["bin", "src", "vendor"],
"include": ["src"],
"entry-point": "bin/acme"
}
}

View File

@@ -44,15 +44,9 @@ class Check implements Command {
}
public static function getDefinition() {
$isPhar = \Kelunik\AcmeClient\isPhar();
return [
"server" => [
"prefix" => "s",
"longPrefix" => "server",
"description" => "ACME server to use for registration and issuance of certificates.",
"required" => true,
],
"server" => \Kelunik\AcmeClient\getArgumentDescription("server"),
"storage" => \Kelunik\AcmeClient\getArgumentDescription("storage"),
"name" => [
"longPrefix" => "name",
"description" => "Common name of the certificate to check.",
@@ -64,12 +58,6 @@ class Check implements Command {
"defaultValue" => 30,
"castTo" => "int",
],
"storage" => [
"longPrefix" => "storage",
"description" => "Storage directory for account keys and certificates.",
"required" => $isPhar,
"defaultValue" => $isPhar ? null : (__DIR__ . "/../../data")
]
];
}
}

View File

@@ -196,15 +196,9 @@ class Issue implements Command {
}
public static function getDefinition() {
$isPhar = \Kelunik\AcmeClient\isPhar();
return [
"server" => [
"prefix" => "s",
"longPrefix" => "server",
"description" => "ACME server to use for registration and issuance of certificates.",
"required" => true,
],
"server" => \Kelunik\AcmeClient\getArgumentDescription("server"),
"storage" => \Kelunik\AcmeClient\getArgumentDescription("storage"),
"domains" => [
"prefix" => "d",
"longPrefix" => "domains",
@@ -228,12 +222,6 @@ class Issue implements Command {
"defaultValue" => 2048,
"castTo" => "int",
],
"storage" => [
"longPrefix" => "storage",
"description" => "Storage directory for account keys and certificates.",
"required" => $isPhar,
"defaultValue" => $isPhar ? null : (__DIR__ . "/../../data")
]
];
}
}

View File

@@ -56,26 +56,14 @@ class Revoke implements Command {
}
public static function getDefinition() {
$isPhar = \Kelunik\AcmeClient\isPhar();
return [
"server" => [
"prefix" => "s",
"longPrefix" => "server",
"description" => "ACME server to use for registration and issuance of certificates.",
"required" => true,
],
"server" => \Kelunik\AcmeClient\getArgumentDescription("server"),
"storage" => \Kelunik\AcmeClient\getArgumentDescription("storage"),
"name" => [
"longPrefix" => "name",
"description" => "Common name of the certificate to be revoked.",
"required" => true,
],
"storage" => [
"longPrefix" => "storage",
"description" => "Storage directory for account keys and certificates.",
"required" => $isPhar,
"defaultValue" => $isPhar ? null : (__DIR__ . "/../../data")
]
];
}
}

View File

@@ -36,7 +36,7 @@ class Setup implements Command {
$path = "accounts/{$keyFile}.pem";
$bits = 4096;
$keyStore = new KeyStore(\Kelunik\AcmeClient\normalizePath($args->get("storage")) . "/data");
$keyStore = new KeyStore(\Kelunik\AcmeClient\normalizePath($args->get("storage")));
try {
$keyPair = (yield $keyStore->get($path));
@@ -78,26 +78,16 @@ class Setup implements Command {
}
public static function getDefinition() {
$isPhar = \Kelunik\AcmeClient\isPhar();
return [
"server" => [
"prefix" => "s",
"longPrefix" => "server",
"description" => "ACME server to use for registration and issuance of certificates.",
"required" => true,
],
"server" => \Kelunik\AcmeClient\getArgumentDescription("server"),
"storage" => \Kelunik\AcmeClient\getArgumentDescription("storage"),
"email" => [
"longPrefix" => "email",
"description" => "E-mail for important issues, will be sent to the ACME server.",
"required" => true,
],
"storage" => [
"longPrefix" => "storage",
"description" => "Storage directory for account keys and certificates.",
"required" => $isPhar,
"defaultValue" => $isPhar ? null : (__DIR__ . "/../../data")
]
];
}
}

View File

@@ -69,4 +69,34 @@ function isPhar() {
function normalizePath($path) {
return rtrim(str_replace("\\", "/", $path), "/");
}
function getArgumentDescription($argument) {
$isPhar = \Kelunik\AcmeClient\isPhar();
switch ($argument) {
case "server":
return [
"prefix" => "s",
"longPrefix" => "server",
"description" => "ACME server to use for registration and issuance of certificates.",
"required" => true,
];
case "storage":
$argument = [
"longPrefix" => "storage",
"description" => "Storage directory for account keys and certificates.",
"required" => $isPhar,
];
if (!$isPhar) {
$argument["defaultValue"] = dirname(__DIR__) . "/data";
}
return $argument;
default:
throw new \InvalidArgumentException("Unknown argument: " . $argument);
}
}