8 public function __construct()
16 $result = $this->cliParser->parse();
17 } catch (\Exception $exc) {
18 $this->cliParser->displayError($exc->getMessage());
22 if ($result->options['debug']) {
27 $deps = new Dependencies();
29 $GLOBALS['dbdsn'], $GLOBALS['dbuser'], $GLOBALS['dbpass']
32 $deps->options = array_merge(
33 $result->options, $result->command->options
36 if ($result->command_name == 'update') {
37 $this->runUpdate($result, $deps);
39 } catch (\Exception $e) {
40 $msg = 'stapibas exception!' . "\n"
41 . 'Code: ' . $e->getCode() . "\n"
42 . 'Message: ' . $e->getMessage() . "\n";
43 file_put_contents('php://stderr', $msg);
48 protected function runUpdate($result, $deps)
50 $tasks = array_flip(explode(',', $result->command->options['tasks']));
52 if (isset($tasks['feeds'])) {
53 $this->runUpdateFeeds($deps);
55 if (isset($tasks['entries'])) {
56 $this->runUpdateEntries($deps);
58 if (isset($tasks['urls'])) {
59 $this->runUpdatePingUrls($deps);
63 protected function runUpdateFeeds($deps)
65 $uf = new Feed_UpdateFeeds($deps);
66 if ($deps->options['feed'] === null) {
69 $urlOrIds = explode(',', $deps->options['feed']);
70 $uf->updateSome($urlOrIds);
74 protected function runUpdateEntries($deps)
76 $ue = new Feed_UpdateEntries($deps);
77 if ($deps->options['entry'] === null) {
80 $urlOrIds = explode(',', $deps->options['entry']);
81 $ue->updateSome($urlOrIds);
85 protected function runUpdatePingUrls($deps)
87 $uf = new Feed_PingUrls($deps);
88 if ($deps->options['entryurl'] === null) {
91 $urls = explode(',', $deps->options['entryurl']);
97 public function setupCli()
99 $p = new \Console_CommandLine();
100 $p->description = 'Sends pingbacks to URLs linked in Atom feed entries';
101 $p->version = '0.0.1';
106 'short_name' => '-d',
107 'long_name' => '--debug',
108 'description' => "Output debug messages",
109 'action' => 'StoreTrue'
115 'short_name' => '-f',
116 'long_name' => '--force',
117 'description' => "Update even when resource did not change",
118 'action' => 'StoreTrue'
123 $update = $p->addCommand(
126 'description' => 'Update feed data and send out pings'
133 'short_name' => '-i',
134 'long_name' => '--feed',
135 'description' => 'Update this feed URL or ID',
136 'help_name' => 'URL|ID',
137 'action' => 'StoreString'
144 'short_name' => '-e',
145 'long_name' => '--entry',
146 'description' => 'Update this feed entry URL or ID',
147 'help_name' => 'URL|ID',
148 'action' => 'StoreString'
155 'short_name' => '-t',
156 'long_name' => '--tasks',
157 'description' => 'Execute the given tasks (comma-separated: feeds,entries,urls)',
158 'help_name' => 'tasks',
159 'action' => 'StoreString',
160 'default' => 'feeds,entries,urls',
166 'long_name' => '--list-tasks',
167 'description' => 'Show all possible tasks',
169 'list' => array('feeds', 'entries', 'urls')
176 'short_name' => '-u',
177 'long_name' => '--url',
178 'description' => 'Ping this URL or ID',
179 'help_name' => 'URL|ID',
180 'action' => 'StoreString'
184 $this->cliParser = $p;