* cli command support added
* nightly cache update cli command implemented
This commit is contained in:
parent
6e823bc0ea
commit
68e66ddedf
17
bin/cli
Executable file
17
bin/cli
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require __DIR__ . '/../vendor/autoload.php';
|
||||||
|
|
||||||
|
use Symfony\Component\Console\Application;
|
||||||
|
|
||||||
|
/** @var \Interop\Container\ContainerInterface $container */
|
||||||
|
$container = require __DIR__ . '/../config/container.php';
|
||||||
|
$application = new Application('Application console');
|
||||||
|
|
||||||
|
$commands = $container->get('config')['console']['commands'];
|
||||||
|
foreach ($commands as $command) {
|
||||||
|
$application->add($container->get($command));
|
||||||
|
}
|
||||||
|
|
||||||
|
$application->run();
|
||||||
@ -19,7 +19,8 @@
|
|||||||
"los/basepath": "^1.0",
|
"los/basepath": "^1.0",
|
||||||
"zendframework/zend-http": "^2.6",
|
"zendframework/zend-http": "^2.6",
|
||||||
"symfony/css-selector": "^3.2",
|
"symfony/css-selector": "^3.2",
|
||||||
"zendframework/zend-cache": "^2.7"
|
"zendframework/zend-cache": "^2.7",
|
||||||
|
"symfony/console": "^3.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^4.8",
|
"phpunit/phpunit": "^4.8",
|
||||||
|
|||||||
2
composer.lock
generated
2
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "1823e15d3da7740350f42c474e6e640e",
|
"content-hash": "b68abdbc94f3cc9c9ca4ed861cb59a9f",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "container-interop/container-interop",
|
"name": "container-interop/container-interop",
|
||||||
|
|||||||
15
config/autoload/cli.global.php
Normal file
15
config/autoload/cli.global.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'dependencies' => [
|
||||||
|
'invokables' => [],
|
||||||
|
'factories' => [
|
||||||
|
App\Command\UpdateNightlyCacheCommand::class => App\Command\UpdateNightlyCacheCommandFactory::class,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'console' => [
|
||||||
|
'commands' => [
|
||||||
|
App\Command\UpdateNightlyCacheCommand::class,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
33
src/App/Command/UpdateNightlyCacheCommand.php
Normal file
33
src/App/Command/UpdateNightlyCacheCommand.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Command;
|
||||||
|
|
||||||
|
use App\Service\CiExecutorService;
|
||||||
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
|
class UpdateNightlyCacheCommand extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var CiExecutorService
|
||||||
|
*/
|
||||||
|
private $ciExecutorService;
|
||||||
|
|
||||||
|
public function __construct(CiExecutorService $ciExecutorService)
|
||||||
|
{
|
||||||
|
$this->ciExecutorService = $ciExecutorService;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function configure()
|
||||||
|
{
|
||||||
|
$this->setName('nightly:update')
|
||||||
|
->setDescription('Updates nightly configuration cache');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
|
{
|
||||||
|
$this->ciExecutorService->getActiveNightlyConfiguration(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/App/Command/UpdateNightlyCacheCommandFactory.php
Normal file
16
src/App/Command/UpdateNightlyCacheCommandFactory.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Command;
|
||||||
|
|
||||||
|
use App\Service\CiExecutorService;
|
||||||
|
use Interop\Container\ContainerInterface;
|
||||||
|
|
||||||
|
class UpdateNightlyCacheCommandFactory
|
||||||
|
{
|
||||||
|
public function __invoke(ContainerInterface $container)
|
||||||
|
{
|
||||||
|
/** @var CiExecutorService $ciExecutorService */
|
||||||
|
$ciExecutorService = $container->get(CiExecutorService::class);
|
||||||
|
return new UpdateNightlyCacheCommand($ciExecutorService);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -90,7 +90,6 @@ class CiExecutorService
|
|||||||
$config2Html = $this->getConfig2Html();
|
$config2Html = $this->getConfig2Html();
|
||||||
$staplerTokens = $this->getStaplerTokens($config2Html, "JCAT_TYPE");
|
$staplerTokens = $this->getStaplerTokens($config2Html, "JCAT_TYPE");
|
||||||
return $this->getJcatVersions($staplerTokens['url'], $staplerTokens['token']);
|
return $this->getJcatVersions($staplerTokens['url'], $staplerTokens['token']);
|
||||||
// return $this->getJcatVersions($config2Html);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$cache = $this->getCache(self::JCAT_CACHE_KEY);
|
$cache = $this->getCache(self::JCAT_CACHE_KEY);
|
||||||
@ -99,7 +98,6 @@ class CiExecutorService
|
|||||||
$config2Html = $this->getConfig2Html();
|
$config2Html = $this->getConfig2Html();
|
||||||
$staplerTokens = $this->getStaplerTokens($config2Html, "JCAT_TYPE");
|
$staplerTokens = $this->getStaplerTokens($config2Html, "JCAT_TYPE");
|
||||||
$packages =$this->getJcatVersions($staplerTokens['url'], $staplerTokens['token']);
|
$packages =$this->getJcatVersions($staplerTokens['url'], $staplerTokens['token']);
|
||||||
// $packages =$this->getJcatVersions($config2Html);
|
|
||||||
$cache->setItem(self::PACKAGE_CACHE_KEY, serialize($packages));
|
$cache->setItem(self::PACKAGE_CACHE_KEY, serialize($packages));
|
||||||
} else {
|
} else {
|
||||||
$packages = unserialize($result);
|
$packages = unserialize($result);
|
||||||
@ -759,8 +757,11 @@ class CiExecutorService
|
|||||||
$cssToXpathConverter = new CssSelectorConverter();
|
$cssToXpathConverter = new CssSelectorConverter();
|
||||||
$xpathQuery = $cssToXpathConverter->toXPath(sprintf('input[value=%s]', $fieldName));
|
$xpathQuery = $cssToXpathConverter->toXPath(sprintf('input[value=%s]', $fieldName));
|
||||||
|
|
||||||
|
$xmlErrorHandling = libxml_use_internal_errors(TRUE);
|
||||||
$domDocument = new \DOMDocument();
|
$domDocument = new \DOMDocument();
|
||||||
$domDocument->loadHTML($html);
|
$domDocument->loadHTML($html);
|
||||||
|
libxml_clear_errors();
|
||||||
|
libxml_use_internal_errors($xmlErrorHandling);
|
||||||
|
|
||||||
$xpath = new \DOMXPath($domDocument);
|
$xpath = new \DOMXPath($domDocument);
|
||||||
$element = $xpath->query($xpathQuery);
|
$element = $xpath->query($xpathQuery);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user