0010080: caldav client / import caldav tasks/task lists via CLI
[tine20] / tine20 / Tasks / Frontend / Cli.php
1 <?php
2 /**
3  * Tine 2.0
4  * @package     Tasks
5  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
6  * @author      Philipp Schüle <p.schuele@metaways.de>
7  * @copyright   Copyright (c) 2014 Metaways Infosystems GmbH (http://www.metaways.de)
8  */
9
10 /**
11  * Cli frontend for Tasks
12  *
13  * This class handles cli requests for the Tasks
14  *
15  * @package     Tasks
16  */
17 class Tasks_Frontend_Cli extends Tinebase_Frontend_Cli_Abstract
18 {
19     /**
20      * the internal name of the application
21      * 
22      * @var string
23      */
24     protected $_applicationName = 'Tasks';
25     
26     /**
27      * import calendars from a CalDav source
28      *
29      * param Zend_Console_Getopt $_opts
30      */
31     public function importCalDavCalendars(Zend_Console_Getopt $_opts)
32     {
33         $args = $this->_parseArgs($_opts, array('url', 'caldavuserfile'));
34         
35         $this->_addOutputLogWriter(4);
36         
37         $caldavCli = new Tasks_Frontend_CalDAV_Cli($_opts, $args);
38         $caldavCli->importAllCalendars();
39     }
40     
41     /**
42      * import calendars and calendar events from a CalDav source using multiple parallel processes
43      *
44      * param Zend_Console_Getopt $_opts
45      */
46     public function importCalDavMultiProc(Zend_Console_Getopt $_opts)
47     {
48         $args = $this->_parseArgs($_opts, array('url', 'caldavuserfile', 'numProc'));
49         
50         $this->_addOutputLogWriter(4);
51         
52         $caldavCli = new Tasks_Frontend_CalDAV_Cli($_opts, $args);
53         $caldavCli->runImportUpdateMultiproc('import');
54     }
55     
56     /**
57      * update calendar events from a CalDav source using multiple parallel processes
58      *
59      * param Zend_Console_Getopt $_opts
60      */
61     public function updateCalDavMultiProc(Zend_Console_Getopt $_opts)
62     {
63         $args = $this->_parseArgs($_opts, array('url', 'caldavuserfile', 'numProc'));
64         
65         $this->_addOutputLogWriter(4);
66         
67         $caldavCli = new Tasks_Frontend_CalDAV_Cli($_opts, $args);
68         $caldavCli->runImportUpdateMultiproc('update');
69     }
70     
71     /**
72      * import calendar events from a CalDav source for one user
73      *
74      * param Zend_Console_Getopt $_opts
75      */
76     public function importCalDavDataForUser(Zend_Console_Getopt $_opts)
77     {
78         $args = $this->_parseArgs($_opts, array('url', 'caldavuserfile', 'line', 'run'));
79         
80         $this->_addOutputLogWriter(4);
81         
82         $caldavCli = new Tasks_Frontend_CalDAV_Cli($_opts, $args);
83         $caldavCli->importAllCalendarData();
84     }
85     
86     /**
87      * update calendar/events from a CalDav source using etags for one user
88      *
89      * @param Zend_Console_Getopt $_opts
90      */
91     public function updateCalDavDataForUser(Zend_Console_Getopt $_opts)
92     {
93         $args = $this->_parseArgs($_opts, array('url', 'caldavuserfile', 'line', 'run'));
94         
95         $this->_addOutputLogWriter(4);
96         
97         $caldavCli = new Tasks_Frontend_CalDAV_Cli($_opts, $args);
98         $caldavCli->updateAllCalendarData();
99     }
100 }