diff --git a/add_date.sh b/add_date.sh index 507d6fe..c80a26a 100755 --- a/add_date.sh +++ b/add_date.sh @@ -6,7 +6,7 @@ # Usage output string. $0 is filename. usage="$0 categories date description [dtstart] [dtend] -where categories is a comma separated list that MUST start with FRIST, WF or TERMIN +where categories is a comma separated list that MUST start with FRIST, WV or TERMIN and the second item in this list denotes the required alarm set." # print usage string if improper options, or if requested. @@ -30,16 +30,26 @@ BASEPATH=$(dirname $(realpath $0)) # ics example 8cbf7d9e-6g68-43b9-zb3c-073a8e6b8f46.ics UUID=$random1-$random2-$random3-$random4-$random5 - ics=$UUID.ics -# done here generating an UID, and defining a filename using that UID - +# done here generating an UID NOW=`date +%Y%m%dT%H%M%S` + # find main category and decide for a template main_cat=$(echo $1 | cut -d, -f1 | tr 'A-Z' 'a-z') - template=$BASEPATH/templates/template_$main_cat.ics +# last preparations of arguments to pass to the function: +inputcat=$1 +inputdate=$2 +inputdesc=$3 +inputstart=$4 +inputend=$5 +prepare_file() { + local mode=${1,?Mode is required} + template=$BASEPATH/templates/template_${main_cat}_${mode}.ics + ics=$UUID-$mode.ics + +if [ -e $template ]; then # initiate iCal file with template cp $template $ics @@ -48,17 +58,14 @@ BASEPATH=$(dirname $(realpath $0)) # dtstamp, lastmodified, created: sed -i "s|20160224T172807|$NOW|g" $ics # date (this script will only add single day events. Use other calDAV front-ends for more sophisticated usage) - sed -i "s|20160225|$2|g" $ics + sed -i "s|20160225|$inputdate|g" $ics # categories - sed -i "s|replacemecategory|$1|g" $ics -# replacemealarm[et] + sed -i "s|replacemecategory|$inputcat|g" $ics +# replacemealarm # We have to do quite a lot of shitty magic here to get the right representations for the different kinds of newlines. - alarmt=$($BASEPATH/add_alarm.sh t $1 $2) - alarmt=${alarmt//$'\n'/\\$'\n'} - alarme=$($BASEPATH/add_alarm.sh e $1 $2) - alarme=${alarme//$'\n'/\\$'\n'} - sed -i "s|replacemealarmt|${alarmt//\\n/\\\\n}|g" $ics - sed -i "s|replacemealarme|${alarme//\\n/\\\\n}|g" $ics + alarm=$($BASEPATH/add_alarm.sh $mode $inputcat $inputdate) + alarm=${alarm//$'\n'/\\$'\n'} + sed -i "s|replacemealarm|${alarm//\\n/\\\\n}|g" $ics # AktenzeichenXYZ # take from deckblatt aktenzeichen="" @@ -69,20 +76,28 @@ BASEPATH=$(dirname $(realpath $0)) fi sed -i "s|AktenzeichenXYZ|$aktenzeichen|g" $ics # human-readable date - sed -i "s|replacemedate|$(date -d $2 +%d.%m.%Y), 2300|g" $ics + sed -i "s|replacemedate|$(date -d $inputdate +%d.%m.%Y), 2300|g" $ics # description: - sed -i "s|replacemedescription|${3//$'\n'/\\\\n}|g" $ics + sed -i "s|replacemedescription|${inputdesc//$'\n'/\\\\n}|g" $ics # what we might need to replace, but not even that often: # dtstart, time component optional. We only work with minutes here: - [ -n "$4" ] && echo ${#4} - [ -n "$4" ] && sed -i "s|2300|$4|g" $ics + [ -n "$inputstart" ] && echo ${#inputstart} + [ -n "$inputstart" ] && sed -i "s|2300|$inputstart|g" $ics # dtend, same as dtstart: - [ -n "$5" ] && sed -i "s|2359|$5|g" $ics + [ -n "$inputend" ] && sed -i "s|2359|$inputend|g" $ics # UUID: sed -i "s|99g999gggg|$UUID|g" $ics + domain=${domain/%\//} user=$username:$secret url=$domain/$username/$calendar + echo curl -k --user $user -X PUT -H "Content-Type: text/calendar; charset=utf-8" --data-binary @./$ics --url $url/$ics curl -k --user $user -X PUT -H "Content-Type: text/calendar; charset=utf-8" --data-binary @./$ics --url $url/$ics fi +} + +prepare_file t +prepare_file e + +fi diff --git a/erinnermich.sh b/erinnermich.sh index 15c404d..fe82a1e 100755 --- a/erinnermich.sh +++ b/erinnermich.sh @@ -66,4 +66,5 @@ do done #letztes Komma aus CATEGORIES streichen CATEGORIES=${CATEGORIES/%,/} -$BASEPATH/add_date.sh $CATEGORIES $date $1 $tstart $tend; +echo $BASEPATH/add_date.sh $CATEGORIES $date "$1" $tstart $tend +$BASEPATH/add_date.sh $CATEGORIES $date "$1" $tstart $tend diff --git a/templates/alarm_frist_jura_e.ics b/templates/alarm_frist_jura_e.ics index 2a8db52..19bf6fb 100644 --- a/templates/alarm_frist_jura_e.ics +++ b/templates/alarm_frist_jura_e.ics @@ -1,5 +1,5 @@ BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM diff --git a/templates/alarm_frist_jura_t.ics b/templates/alarm_frist_jura_t.ics index 84bcfcc..caf5d32 100644 --- a/templates/alarm_frist_jura_t.ics +++ b/templates/alarm_frist_jura_t.ics @@ -3,25 +3,25 @@ ACTION:MAIL SUMMARY:Fristablauf AktenzeichenXYZ DESCRIPTION:Es läuft demnächst eine Frist ab:\nreplacemedescription\n\nreplacemedate ATTENDEE:replacememail -TRIGGER,VALUE=DATE-TIME:20160223T100000 +TRIGGER;VALUE=DATE-TIME:20160223T100000 END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160223T100000 +TRIGGER;VALUE=DATE-TIME:20160223T100000 END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,RELATED=END:-PT5M +TRIGGER;RELATED=END:-PT5M END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,RELATED=END:-PT6H +TRIGGER;RELATED=END:-PT6H END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM diff --git a/templates/alarm_frist_personal_t.ics b/templates/alarm_frist_personal_t.ics index 36f3670..f647112 100644 --- a/templates/alarm_frist_personal_t.ics +++ b/templates/alarm_frist_personal_t.ics @@ -1,5 +1,5 @@ BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM diff --git a/templates/alarm_termin_jura_e.ics b/templates/alarm_termin_jura_e.ics index ca97eae..c664faf 100644 --- a/templates/alarm_termin_jura_e.ics +++ b/templates/alarm_termin_jura_e.ics @@ -8,5 +8,5 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Termin\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160224T100000 +TRIGGER;VALUE=DATE-TIME:20160224T100000 END:VALARM diff --git a/templates/alarm_termin_personal_e.ics b/templates/alarm_termin_personal_e.ics index 2d8d36c..c0e9cc6 100644 --- a/templates/alarm_termin_personal_e.ics +++ b/templates/alarm_termin_personal_e.ics @@ -1,5 +1,5 @@ BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Termin\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM diff --git a/templates/template_alarm.ics b/templates/template_alarm.ics index 425e16a..48a2a7e 100644 --- a/templates/template_alarm.ics +++ b/templates/template_alarm.ics @@ -3,7 +3,7 @@ BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM # Frist, Jura, todo @@ -13,31 +13,31 @@ ACTION:MAIL SUMMARY:Fristablauf AktenzeichenXYZ DESCRIPTION:Es läuft demnächst eine Frist ab:\nreplacemedescription\n\nreplacemedate ATTENDEE:replacememail -TRIGGER,VALUE=DATE-TIME:20160223T100000 +TRIGGER;VALUE=DATE-TIME:20160223T100000 END:VALARM #Display -2d 1000 BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160223T100000 +TRIGGER;VALUE=DATE-TIME:20160223T100000 END:VALARM #display -5m BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,RELATED=END:-PT5M +TRIGGER;RELATED=END:-PT5M END:VALARM #display -6h BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,RELATED=END:-PT6H +TRIGGER;RELATED=END:-PT6H END:VALARM # Display -1d 1800 BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM @@ -54,7 +54,7 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Termin\nAktenzeichenXYZ\nreplacemedate -TRIGGER,VALUE=DATE-TIME:20160224T100000 +TRIGGER;VALUE=DATE-TIME:20160224T100000 END:VALARM @@ -89,13 +89,13 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T100000 +TRIGGER;VALUE=DATE-TIME:20160224T100000 END:VALARM #display -1h BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,RELATED=END:-PT1H +TRIGGER;RELATED=END:-PT1H END:VALARM @@ -104,13 +104,13 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T100000 +TRIGGER;VALUE=DATE-TIME:20160224T100000 END:VALARM #display -1w BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,RELATED=END:-P1W +TRIGGER;RELATED=END:-P1W END:VALARM # Termin, pEp, event @@ -118,13 +118,13 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T100000 +TRIGGER;VALUE=DATE-TIME:20160224T100000 END:VALARM #display -15m BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Termin\nreplacemedate\nreplacemedescription -TRIGGER,RELATED=END:-PT15M +TRIGGER;RELATED=END:-PT15M END:VALARM # Frist, personal, todo @@ -132,7 +132,7 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM # Termin, personal, event @@ -140,5 +140,5 @@ END:VALARM BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:Termin\nreplacemedate\nreplacemedescription -TRIGGER,VALUE=DATE-TIME:20160224T180000 +TRIGGER;VALUE=DATE-TIME:20160224T180000 END:VALARM diff --git a/templates/template_termin.ics b/templates/template_frist_e.ics similarity index 97% rename from templates/template_termin.ics rename to templates/template_frist_e.ics index ed0e0c0..a92fb7b 100644 --- a/templates/template_termin.ics +++ b/templates/template_frist_e.ics @@ -31,6 +31,6 @@ TRANS:TRANSPARENT CLASS:PUBLIC CATEGORIES:replacemecategory X-MOZ-GENERATION:1 -replacemealarme +replacemealarm END:VEVENT END:VCALENDAR diff --git a/templates/template_frist_t.ics b/templates/template_frist_t.ics new file mode 100644 index 0000000..7dd4c6c --- /dev/null +++ b/templates/template_frist_t.ics @@ -0,0 +1,36 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN +BEGIN:VTIMEZONE +TZID:Europe/Paris +BEGIN:DAYLIGHT +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +TZNAME:CEST +DTSTART:19700329T020000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +TZNAME:CET +DTSTART:19701025T030000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 +END:STANDARD +END:VTIMEZONE +BEGIN:VTODO +CREATED:20160224T172807Z +LAST-MODIFIED:20160224T172807Z +DTSTAMP:20160224T172807Z +UID:99g999gggg-todo +RELATED-TO:99g999gggg-event +SUMMARY:Frist AktenzeichenXYZ +DESCRIPTION:replacemedescription +DUE;TZID=Europe/Paris:20160225T235959 +STATUS:NEEDS-ACTION +CLASS:PUBLIC +CATEGORIES:replacemecategory +X-MOZ-GENERATION:1 +replacemealarm +END:VTODO +END:VCALENDAR diff --git a/templates/template_frist.ics b/templates/template_termin_e.ics similarity index 66% rename from templates/template_frist.ics rename to templates/template_termin_e.ics index cd2ba41..a92fb7b 100644 --- a/templates/template_frist.ics +++ b/templates/template_termin_e.ics @@ -31,23 +31,6 @@ TRANS:TRANSPARENT CLASS:PUBLIC CATEGORIES:replacemecategory X-MOZ-GENERATION:1 -replacemealarme +replacemealarm END:VEVENT END:VCALENDAR -BEGIN:VCALENDAR -BEGIN:VTODO -CREATED:20160224T172807Z -LAST-MODIFIED:20160224T172807Z -DTSTAMP:20160224T172807Z -UID:99g999gggg-todo -RELATED-TO:99g999gggg-event -SUMMARY:Frist AktenzeichenXYZ -DESCRIPTION:replacemedescription -DUE;TZID=Europe/Paris:20160225T235959 -STATUS:NEEDS-ACTION -CLASS:PUBLIC -CATEGORIES:replacemecategory -X-MOZ-GENERATION:1 -replacemealarmt -END:VTODO -END:VCALENDAR diff --git a/templates/template_wv.ics b/templates/template_wv_t.ics similarity index 97% rename from templates/template_wv.ics rename to templates/template_wv_t.ics index 8a79d85..a04dfde 100644 --- a/templates/template_wv.ics +++ b/templates/template_wv_t.ics @@ -30,6 +30,6 @@ STATUS:NEEDS-ACTION CLASS:PUBLIC CATEGORIES:replacemecategory X-MOZ-GENERATION:1 -replacemealarmt +replacemealarm END:VTODO END:VCALENDAR