#!/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 < tasks Tasks 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 () { 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 <root/src/resources/epiphany-history-window-ui.xml
blob: 34ed6110c66ef9502c1b328ba3899ec3e55eae19 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46