Es geht vorran ♬

Hallo Welt!

Ich blogge wieder.

Was los? Nüx.

Ich komme voran bei DirSync. Die DirSync Objekte habe ich jetzt nur noch perfektioniert und werde sie wohl noch objektorientierter machen, ich glaube es geht derzeit noch nen bisschen durcheinander. Mein Problem heute war, dass ich nicht wusste, wie ich DirSync aus der Befehlszeile heraus einfach bedienbar machen kann. Ich habe jetzt dazu eine Lösung gefunden, im CommandLineParameters-Unterprojekt. Jeder Befehl setzt sich jetzt so zusammen:

dirupdate [action] [parameter] [parameter] [parameter]

Vorher fehlte [action] und ich wusste nicht wie ich eine Aktion auslösen konnte, z.B. den Inhalt des Verzeichnis auflisten ohne dass es noch synchronisiert wird. Außerdem habe ich auch hier alles Objektorientierter gemacht:

Der Parser (ParameterParser) enthält jetzt gleich die fertigen Parameter (Parameters), eine übergeordnete Beschreibung der Parameter (z.B. was DirSync ist und was es macht), und die Aktionen. Die Parameter sind über Namen (ParameterName) zugeordnet, siehe unten.
Die einzelnen Parameter enthält auch eine Beschreibung, diesmal aber eine spezifische über den Parameter, eine Größe wie viele Argumente er halten kann und einen Wahrheitswert, ob er in der Befehlszeile vertreten war.
Jeder Parameter hat einen Namen (ParameterName). Dieser hat zwei Werte: einen langen Namen und einen kurzen. (Ein langer Parameter sieht z.B. so aus: "--foo" und der dazugehörige kurze so: "-f").

Die Parameter und Aktionen sind innerhalb von DirSync folgendermaßen definiert:

Sie sind in einem extra Paket definiert, die Parameter in de.joinout.criztovyl.dirsync.commandline.parameters und die Aktionen in de.joinout.criztovyl.dirsync.actions. Jeder Parameter hat eine eigene Klasse, die den Namen, die Größe und den Parameter an sich beinhaltet, jede Aktion ebenfalls, sie beinhaltet die Aktion und deren Namen. Die Namen sind in einer anderen Klasse als Konstanten definiert. (de.joinout.criztovyl.dirsync.commandline.Names)

Parameter die es derzeit gibt [Name (lang|kurz]:

  • Regex (regex|r): ein regulärer Ausdruck, Pfade die darauf passen werden ignoriert, z.B. um Sicherungsdateien auszuschließen o.ä.
  • Directory (directory|d): das Verzeichnis das verwendet werden soll. Bei der "update"-Aktion ist dies das Zielverzeichnis
  • Seperator (seperator|s): der Pfadtrenner, bei Linux und *NIX /, bei Windows \. Wenn nicht angegeben wird des Betriebssystems verwendet
  • Single (single|s): Legt fest, dass nur einzelne Dateien angegeben sind. (Scheint ein Überbleibsel aus der Befehlszeile ohne Aktion zu sein).

Aktionen:

  • Help: Gibt die Hilfe aus
  • License: Gibt die Lizens aus (GPL v3)
  • Recover: Stellt eine frühere Version einer Datei her.

Zum nächsten Mal möchte ich das Aktualisieren von zwei Ordner zum Laufen bringen, wenn es passt vllt auch noch eine Synchronisation.

Für Interessierte:

CommandLineParameters Quellcode JavaDoc

DirSync Quellcode JavaDoc

Tools Quellcode JavaDoc

Alles lizensiert unter GPL v3.

 

Christoph Schulz

Christoph Schulz
I am Dev. Maybe.

Packaging Fractal as DEB 1/?

Nothing happend here for some time, so let's write something. :)Because I am crazy I decided trying to package Fractal (Gnomes's GTK Matr...… Continue reading