diff options
Diffstat (limited to 'kanboard')
-rwxr-xr-x | kanboard | 82 |
1 files changed, 13 insertions, 69 deletions
@@ -3,72 +3,16 @@ require __DIR__.'/app/common.php'; -use Core\Cli; -use Core\Tool; -use Model\Config; -use Model\Task; -use Model\TaskFinder; -use Model\TaskExport; -use Model\Notification; - -$config = new Config($registry); -$config->setupTranslations(); -$config->setupTimezone(); - -// Setup CLI -$cli = new Cli; - -// Usage -$cli->register('help', function() { - echo 'Kanboard command line interface'.PHP_EOL.'==============================='.PHP_EOL.PHP_EOL; - echo '- Task export to stdout (CSV format): '.$GLOBALS['argv'][0].' export-csv <project_id> <start_date> <end_date>'.PHP_EOL; - echo '- Send notifications for due tasks: '.$GLOBALS['argv'][0].' send-notifications-due-tasks'.PHP_EOL; -}); - -// CSV Export -$cli->register('export-csv', function() use ($cli, $registry) { - - if ($GLOBALS['argc'] !== 5) { - $cli->call($cli->default_command); - } - - $project_id = $GLOBALS['argv'][2]; - $start_date = $GLOBALS['argv'][3]; - $end_date = $GLOBALS['argv'][4]; - - $taskExport = new TaskExport($registry); - $data = $taskExport->export($project_id, $start_date, $end_date); - - if (is_array($data)) { - Tool::csv($data); - } -}); - -// Send notification for tasks due -$cli->register('send-notifications-due-tasks', function() use ($cli, $registry) { - - $notificationModel = new Notification($registry); - $taskModel = new TaskFinder($registry); - $tasks = $taskModel->getOverdueTasks(); - - // Group tasks by project - $projects = array(); - - foreach ($tasks as $task) { - $projects[$task['project_id']][] = $task; - } - - // Send notifications for each project - foreach ($projects as $project_id => $project_tasks) { - - $users = $notificationModel->getUsersList($project_id); - - $notificationModel->sendEmails( - 'notification_task_due', - $users, - array('tasks' => $project_tasks, 'project' => $project_tasks[0]['project_name']) - ); - } -}); - -$cli->execute(); +use Symfony\Component\Console\Application; +use Symfony\Component\EventDispatcher\Event; + +$container['dispatcher']->dispatch('console.bootstrap', new Event); + +$application = new Application('Kanboard', APP_VERSION); +$application->add(new Console\TaskOverdueNotification($container)); +$application->add(new Console\SubtaskExport($container)); +$application->add(new Console\TaskExport($container)); +$application->add(new Console\ProjectDailySummaryCalculation($container)); +$application->add(new Console\ProjectDailySummaryExport($container)); +$application->add(new Console\TransitionExport($container)); +$application->run(); |