summaryrefslogtreecommitdiff
path: root/kanboard
diff options
context:
space:
mode:
Diffstat (limited to 'kanboard')
-rwxr-xr-xkanboard82
1 files changed, 13 insertions, 69 deletions
diff --git a/kanboard b/kanboard
index b82bff0d..f6456ea1 100755
--- a/kanboard
+++ b/kanboard
@@ -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();