Seite 1 von 1

CLI - brauche input...

Verfasst: Mittwoch 23. Januar 2013, 10:22
von mutetella
Hallo,

bin mir bei folgendem gerade nicht so schlüssig...

Einen neuen Termin in meinem Kalender zu erstellen schaut momentan so aus:

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00
So weit, so gut. Um nun einen Termin mit Wiederholung zu erstellen, fallen mir folgende Möglichkeiten ein:

1

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 recurrence=type:monthly days:23, 25, 27
2

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 --recurrence type=monthly days=23, 25, 27
3

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 type=monthly days=23, 25, 27
Ohne es wirklich begründen zu können: Möglichkeit 1 gefällt mir nicht...

Ich favorisiere Möglichkeit 2, da mir diese Syntax dann entgegenkommt, wenn es darum geht, bei einem bestehenden Termin nachträglich eine Wiederholung einzurichten. Könnte dann so aussehen:

Code: Alles auswählen

$ denkdran --modify ID 18 --recurrence type=monthly days=23, 25, 27
Selbiges ginge natürlich auch mit Möglichkeit 3, allerdings werden Wiederholungsargumente bei Möglichkeit 2 auch ausdrücklich als solche eingeleitet.

Für Möglichkeit 3 spräche, dass die Wiederholungsargumente von den Terminargumenten nicht abgesondert sind (auch wenn eine Wiederholung intern eine eigene Klasse ist) und somit sichtbar zu einem Termin gehören. Allerdings muss ich beim Parsen dann Termin- und Wiederholungsargumente trennen, aber egal!

Was meint ihr?

mutetella

Re: CLI - brauche input...

Verfasst: Mittwoch 23. Januar 2013, 11:18
von cofi
4. da ich da ein paar Redundanzen sehe

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 monthly=23, 25, 27
Ich finde uebrigens, dass du mit 2. einen inkonsistenten Weg gehst, da du sonstige Attribute von deinen Terminen sonst auch nicht mit "--" einleitest.

Re: CLI - brauche input...

Verfasst: Mittwoch 23. Januar 2013, 11:36
von BlackJack
@cofi: Das finde ich nicht inkonsequent. Die Option ``--add`` bekommt die zwingend notwendigen Attribute um einen Termin anzulegen und zusätzliche, optionale Attribute, verwenden weitere Optionen.

Ungewöhlich finde ich eher, dass eine Option sowohl mehrere Werte haben kann, als auch ein Wert Leerzeichen enthalten kann ohne dass da irgend etwas „escaped” werden muss.

Re: CLI - brauche input...

Verfasst: Mittwoch 23. Januar 2013, 12:45
von mutetella
cofi hat geschrieben:4. da ich da ein paar Redundanzen sehe
Bei jährlichen Wiederholungen sehe ich da aber dann Probleme:

Code: Alles auswählen

$ denkdran --add ... type=yearly months=1, 4, 7, 10 days=23, 25, 27
Sicherlich könnte man sich das type-Attribut sparen, ich finde aber, dass die explizite Nennung Fehlinterpretationen vermeidet.
Oder hab' ich Dich falsch verstanden?
cofi hat geschrieben:... sonst auch nicht mit "--" einleitest.
Was die zusätzliche '--recurrence'-Option anbelangt bin ich auch nicht so wirklich glücklich. Andernfalls sehe ich es eben auch so wie BlackJack, dass eine Wiederholung, obwohl zu einem Termin gehörend, eben auch als etwas eigenständiges gesehen werden kann.
BlackJack hat geschrieben:Ungewöhlich finde ich eher, dass eine Option sowohl mehrere Werte haben kann, als auch ein Wert Leerzeichen enthalten kann ohne dass da irgend etwas „escaped” werden muss.
Da habe ich mich bewusst gegen POSIX entschieden. Ich sehe keine Probleme am Horizont, wenn Attributwerte ohne diese lästigen Anführungszeichen übergeben werden können. Beim Parsen interpretiere ich alles, was zwischen dem ersten und dem letzten Vorkommen eines Attributnamens steht als Attributwert. Und sollte es wirklich einmal zu einem Konflikt kommen, darf man ja Anführungszeichen verwenden.
Und eine Werteliste kann so

Code: Alles auswählen

1,2 ich, du
aussehen. Ein klein wenig Komfort sollte schon sein. Zumal dieser ja ohne undurchschaubare Magie möglich ist.

mutetella