Пример #1
0
 /**
  * @param Manager $args
  * @return \Generator
  */
 private function doExecute(Manager $args)
 {
     $server = \Kelunik\AcmeClient\resolveServer($args->get("server"));
     $keyName = \Kelunik\AcmeClient\serverToKeyname($server);
     $storage = \Kelunik\AcmeClient\normalizePath($args->get("storage"));
     try {
         $keyStore = new KeyStore($storage);
         (yield $keyStore->get("accounts/{$keyName}.pem"));
         $setup = true;
     } catch (KeyStoreException $e) {
         $setup = false;
     }
     $this->climate->br();
     $this->climate->out("  [" . ($setup ? "<green> ✓ </green>" : "<red> ✗ </red>") . "] " . ($setup ? "Registered on " : "Not yet registered on ") . $server);
     $this->climate->br();
     if ((yield \Amp\File\exists($storage . "/certs/{$keyName}"))) {
         $certificateStore = new CertificateStore($storage . "/certs/{$keyName}");
         $domains = (yield \Amp\File\scandir($storage . "/certs/{$keyName}"));
         foreach ($domains as $domain) {
             $pem = (yield $certificateStore->get($domain));
             $cert = new Certificate($pem);
             $symbol = time() > $cert->getValidTo() ? "<red> ✗ </red>" : "<green> ✓ </green>";
             if (time() < $cert->getValidTo() && time() + $args->get("ttl") * 24 * 60 * 60 > $cert->getValidTo()) {
                 $symbol = "<yellow> ⭮ </yellow>";
             }
             $this->climate->out("  [" . $symbol . "] " . implode(", ", $cert->getNames()));
         }
         $this->climate->br();
     }
 }
Пример #2
0
 private function doDelete($name)
 {
     Assert::string($name, "Name must be a string. Got: %s");
     foreach ((yield \Amp\File\scandir($this->root . "/" . $name)) as $file) {
         (yield \Amp\File\unlink($this->root . "/" . $name . "/" . $file));
     }
     (yield \Amp\File\rmdir($this->root . "/" . $name));
 }
Пример #3
0
 public function doInfo()
 {
     $result = [];
     $keyFile = $this->serverToKeyName();
     $certificateStore = $this->getCertificateStorage();
     $domains = (yield \Amp\File\scandir($certificateStore->getRoot() . '/certs/' . $this->serverToKeyName()));
     foreach ($domains as $domain) {
         $cert = $certificateStore->get('/certs/' . $keyFile . DIRECTORY_SEPARATOR . $domain);
         $result[] = $cert;
     }
     (yield new CoroutineResult($result));
 }