diff options
Diffstat (limited to 'tools/evolution-move-tasks')
-rwxr-xr-x | tools/evolution-move-tasks | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/tools/evolution-move-tasks b/tools/evolution-move-tasks deleted file mode 100755 index 05c27cbce2..0000000000 --- a/tools/evolution-move-tasks +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env perl -# The above is a portable way to invoke Perl, according to the GNU Autotools -# book. It is useful since we don't know where perl is installed. -# -# evolution-move-tasks: a Perl script to move tasks from the Calendar folder -# to the new Tasks folder. -# - -use diagnostics; - -# You may have to change this if your Evolution files are somewhere else. -$EVOLUTION_DIR = "$ENV{'HOME'}/evolution"; - -$CALENDAR_DIR = "$EVOLUTION_DIR/local/Calendar"; -$TASKS_DIR = "$EVOLUTION_DIR/local/Tasks"; - -# Create the Tasks folder if needed. -&EnsureTasksFolderExists ($TASKS_DIR); - -# Get any tasks from the calendar .ics file. -$tasks = &LoadTasks ("$CALENDAR_DIR/calendar.ics"); - -# Get any tasks already in the tasks .ics file. -$tasks .= &LoadTasks ("$TASKS_DIR/tasks.ics"); - -# Create a new Tasks .ics file containing all the tasks. -&OutputTasks ("$TASKS_DIR/tasks.new", $tasks); - -# Move the existing tasks file to a backup. -if (-e "$TASKS_DIR/tasks.ics") { - rename "$TASKS_DIR/tasks.ics", "$TASKS_DIR/tasks.bak" - || die "Can't rename $TASKS_DIR/tasks.ics to $TASKS_DIR/tasks.bak"; -} - -# Move the new file into position. -rename "$TASKS_DIR/tasks.new", "$TASKS_DIR/tasks.ics" - || die "Can't rename $TASKS_DIR/tasks.new to $TASKS_DIR/tasks.ics"; - -# Move the new Calendar file (without the Tasks) into position. -rename "$CALENDAR_DIR/calendar.ics.new", "$CALENDAR_DIR/calendar.ics" - || die "Can't rename $TASKS_DIR/tasks.new to $TASKS_DIR/tasks.ics"; - -0; - - -# If the evolution/local/Tasks folder does not exist, this creates it and -# creates the metadata XML file. -sub EnsureTasksFolderExists { - my ($tasks_dir) = @_; - - return if (-e $tasks_dir); - - print "Creating Tasks folder in: $tasks_dir\n"; - - mkdir ($tasks_dir, 0777) - || die "Can't create Tasks folder directory: $tasks_dir"; - - $metadata = "$tasks_dir/folder-metadata.xml"; - open (METADATA, ">$metadata") - || die "Can't create metadata file: $metadata"; - - print METADATA <<EOF; -<?xml version="1.0"?> -<efolder> - <type>tasks</type> - <description>Tasks</description> -</efolder> -EOF - - close (METADATA); -} - - -sub LoadTasks { - my ($icalendar_file) = @_; - - return "" if (! -e $icalendar_file); - - open (ICSFILE, $icalendar_file) - || die "Can't open iCalendar file: $icalendar_file"; - - open (NEWICSFILE, ">$icalendar_file.new") - || die "Can't open iCalendar file: $icalendar_file.new"; - - $tasks = ""; - $in_task = 0; - while (<ICSFILE>) { - if ($in_task) { - $tasks .= $_; - - if (m/^END:VTODO/) { - $in_task = 0; - } - - } else { - if (m/^BEGIN:VTODO/) { - print "Found task\n"; - - $tasks .= $_; - $in_task = 1; - } else { - print NEWICSFILE $_; - } - } - } - - close (NEWICSFILE); - close (ICSFILE); - - return $tasks; -} - - -sub OutputTasks { - my ($icalendar_file, $tasks) = @_; - - open (ICSFILE, ">$icalendar_file") - || die "Can't create iCalendar file: $icalendar_file"; - - print ICSFILE <<EOF; -BEGIN:VCALENDAR -CALSCALE - :GREGORIAN -PRODID - :-//Helix Code//NONSGML Evolution Calendar//EN -VERSION - :2.0 -$tasks -END:VCALENDAR -EOF - - close (ICSFILE); -} - - |