mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-08-09 15:06:05 +00:00
Add a command-line script to export a single calendar to stdout.
This commit is contained in:
parent
62cf11684d
commit
c675349ded
78
scripts/export_calendar.php
Executable file
78
scripts/export_calendar.php
Executable file
@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
* Script to export a calendar in iCalendar format from the command line.
|
||||
*/
|
||||
|
||||
if ( $argc < 3 ) {
|
||||
|
||||
$basename = $argv[0];
|
||||
echo <<<USAGE
|
||||
Usage:
|
||||
|
||||
$basename davical.example.com /username/calendar/ calendarfile.ics
|
||||
|
||||
Where:
|
||||
'davical.example.com' is the hostname of your DAViCal server.
|
||||
'/username/calendar/' is the (sub-)path of the calendar to be updated.
|
||||
|
||||
This script can be used to export whole calendars in iCalendar format to
|
||||
stdout.
|
||||
|
||||
USAGE;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$_SERVER['SERVER_NAME'] = $argv[1];
|
||||
$source = $argv[2];
|
||||
|
||||
// Change into the web application root directory so includes work.
|
||||
$script_file = __FILE__;
|
||||
chdir(preg_replace('{/scripts/[^/]+.php$}','/htdocs',$script_file));
|
||||
require_once("./always.php");
|
||||
|
||||
class FakeSession {
|
||||
|
||||
var $user_no;
|
||||
var $principal_id;
|
||||
var $username;
|
||||
var $email;
|
||||
var $dav_name;
|
||||
var $principal;
|
||||
var $logged_in;
|
||||
|
||||
function __construct($user_no = null) {
|
||||
if ( empty($user_no) ) {
|
||||
$this->user_no = -1;
|
||||
$this->principal_id = -1;
|
||||
$this->logged_in = false;
|
||||
return;
|
||||
}
|
||||
|
||||
$this->user_no = $user_no;
|
||||
$principal = new Principal('user_no',$user_no);
|
||||
// Assign each field in the selected record to the object
|
||||
foreach( $principal AS $k => $v ) {
|
||||
$this->{$k} = $v;
|
||||
}
|
||||
$this->username = $principal->username();
|
||||
$this->principal_id = $principal->principal_id();
|
||||
$this->email = $principal->email();
|
||||
$this->dav_name = $principal->dav_name();
|
||||
$this->principal = $principal;
|
||||
|
||||
$this->logged_in = true;
|
||||
|
||||
}
|
||||
|
||||
function AllowedTo($do_something) {
|
||||
return $this->logged_in;
|
||||
}
|
||||
}
|
||||
$session = new FakeSession();
|
||||
|
||||
require("caldav-GET-functions.php");
|
||||
$calendar = new DAVResource($source);
|
||||
|
||||
echo export_iCalendar($calendar);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user