Had to split stuff up to make two HTTP-Requests for todo and event
parent
1897e8f16d
commit
ac4dbfa65d
53
add_date.sh
53
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
BEGIN:VALARM
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
|
||||
TRIGGER,VALUE=DATE-TIME:20160224T180000
|
||||
TRIGGER;VALUE=DATE-TIME:20160224T180000
|
||||
END:VALARM
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
BEGIN:VALARM
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
|
||||
TRIGGER,VALUE=DATE-TIME:20160224T180000
|
||||
TRIGGER;VALUE=DATE-TIME:20160224T180000
|
||||
END:VALARM
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
BEGIN:VALARM
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:Termin\nreplacemedate\nreplacemedescription
|
||||
TRIGGER,VALUE=DATE-TIME:20160224T180000
|
||||
TRIGGER;VALUE=DATE-TIME:20160224T180000
|
||||
END:VALARM
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -31,6 +31,6 @@ TRANS:TRANSPARENT
|
|||
CLASS:PUBLIC
|
||||
CATEGORIES:replacemecategory
|
||||
X-MOZ-GENERATION:1
|
||||
replacemealarme
|
||||
replacemealarm
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
|
@ -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
|
|
@ -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
|
|
@ -30,6 +30,6 @@ STATUS:NEEDS-ACTION
|
|||
CLASS:PUBLIC
|
||||
CATEGORIES:replacemecategory
|
||||
X-MOZ-GENERATION:1
|
||||
replacemealarmt
|
||||
replacemealarm
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
Loading…
Reference in New Issue