Linux - relative Pfade für Kontoauszüge

 
richard.dg
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 25
Dabei seit: 01 / 2019
Betreff:

Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 15:52 Uhr  ·  #1
Hallo zusammen,

ich nutze jameica & hibiscus auf verschieden Rechnern, auf denen Linux läuft. Ich habe auf den Rechnern unterschiedliche Benutzernamen. Das Verzeichnis
Code
~/.jameica
halte ich dabei mittels webdav synchron. Allerdings ist mir aufgefallen, dass die Kontoauszüge beim herunterladen von der Bank immer den absoluten Pfad
Code
/home/BENUTZERNAME/pfad/zum/auszug
bekommen.

Daraus ergibt sich das Problem, dass die Auszüge auf einem Rechner unter
Code
/home/peter/pfad/zum/auszug
landen, auf dem anderen unter
Code
/home/paul/pfad/zum/auszug
. Diese absoluten Pfade stehen dann auch im Datensatz. Wenn ich diese in
Code
~/pfad/zum/auszug
ändere, versucht jameica allerdings, diese in
Code
/pfad/zur/software/~/pfad/zum/auszug
zu finden. Offenbar wird die ~ nicht durch /home/BENUTZERNAME ersetzt.

Gibt es hier eventuell schon eine Lösung? Oder -wenn nicht- ist das ein sinnvolles Feature Request?

Danke & Grüße

Richard
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11386
Dabei seit: 03 / 2005
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 16:24 Uhr  ·  #2
Nein, hier gibt es leider keine wirkliche Lösung. "~" ist ein Platzhalter der Linux-Shell. Das macht z.Bsp. die Bash intern. In Java gibt es diese Möglichkeit nicht.
richard.dg
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 25
Dabei seit: 01 / 2019
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 16:31 Uhr  ·  #3
Danke für die schnelle Rückmeldung. Gibt es nicht auch in der grafischen Oberfläche Umgebungsvariablen, die man auswerten könnte?

Soweit ich weiß, kann java auch den Namen des aktuellen Benutzers auslesen mit
Code
System.getProperty("user.name")


Allerdings weiß ich natürlich nicht, wie aufwändig das zu implementieren wäre.

Schöne Grüße

Richard
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11386
Dabei seit: 03 / 2005
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 17:44 Uhr  ·  #4
Das würde dann aber nur funktionieren, wenn die Daten im Benutzerordner gespeichert wurden. Bei mir liegen die PDF-Dateien z.Bsp. auf einem per NFS gemounteten Share. Hier könnte man auch einen relativen Pfad bilden - so a la: ../../../<pfad>/<pfad2>. Auf einem anderen Rechner befindet sich der Mountpoint aber u.U. woanders und es passt nicht mehr.

Will sagen: Relative Pfade machen nur Sinn, wenn einigermaßen sichergestellt ist, dass sich die Daten innerhalb des Jameica-Benutzerordners befinden. Das ist bei den PDF-Dateien aber nicht der Fall. man müsste also konfigurierbar machen, ob relative oder absolute Pfade verwendet werden sollen. Und wenn der User den Parameter ändert, müssten eigentlich auch die in der Datenbank gespeicherten Pfad-Angaben aktualisiert werden. Das Thema lässt sich dann beliebig komplex machen. Das ist mir ehrlich gesagt zu aufwändig. Absolute Pfadangaben sind immer eindeutig. Wenn es bei dir auf einem Rechner nicht passt, könntest du ja einen passenden Symlink setzen.
msa
Benutzer
Avatar
Geschlecht:
Herkunft: München
Alter: 63
Beiträge: 7571
Dabei seit: 03 / 2007
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 18:03 Uhr  ·  #5
Mal eine blöde Frage zum Verständnis: Wieso wird der Pfad offenbar bei jeder einzelnen Datei in der Datenbank gespeichert? Wieso wird nicht nur der Dateiname gespeichert und diese Dateien liegen dann alle in einem - in einem Einstellungsdialog konfigurierbaren - Verzeichnis? Es gibt doch sicher Einstellungen, die pro Rechner auf dem das Programm läuft vorgehalten werden?
ds10
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 165
Dabei seit: 08 / 2018
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 18:38 Uhr  ·  #6
Es gäbe ja als Kompromiss die Möglichkeit einfach den Platzhalter "~" zu unterstützen und diesen dann immer durch System.getProperty("user.home") zu ersetzen, wenn dieser am Beginn des Pfades steht. Dann werden zwar keine relativen Pfade unterstützt, aber immerhin die Verwendung von unterschiedlichen Benutzerverzeichnissen. Obwohl natürlich ein Symlink auf das Verzeichnis auch eine brauchbare und simple Lösung ist.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11386
Dabei seit: 03 / 2005
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 20:56 Uhr  ·  #7
Zitat geschrieben von msa

Mal eine blöde Frage zum Verständnis: Wieso wird der Pfad offenbar bei jeder einzelnen Datei in der Datenbank gespeichert?

Weil pro Konto mit einer Reihe von Platzhaltern definiert werden kann, in welchen Ordner die Dateien gespeichert werden sollen, wenn sie von der Bank abgerufen werden. Im Wiki unter https://www.willuhn.de/wiki/do…ontoauszug ist das beschrieben. Die Werte der Platzhalter sind teilweise nur zum Zeitpunkt des Abrufs bekannt oder koennen spaeter noch vom User geaendert werden. Daher muss der Pfad mit gespeichert werden. Wenn er dynamisch erzeugt werden wuerde, wuerde er danach nicht mehr stimmen und die Datei nicht mehr gefunden werden. Sollte der User dennoch die Dateien an einen anderen Ort verschieben wollen, besitzt Hibiscus auch eine Migrationsfunktion (Rechtsklick auf den Kontoauszug). Falls sich also etwas aendert, kann der User die Dateien verschieben lassen und die Pfade werden in der Datenbank automatisch angepasst.

Es ist nicht so, dass die genannten Funktionen fixe Ideen waren, die mal eben auf die Schnelle wieder auf was anderes umgekrempelt werden koennen. Da steckt schon etwas an Arbeit drin.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11386
Dabei seit: 03 / 2005
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 30.01.2020 - 20:59 Uhr  ·  #8
Zitat geschrieben von ds10

Es gäbe ja als Kompromiss die Möglichkeit einfach den Platzhalter "~" zu unterstützen und diesen dann immer durch System.getProperty("user.home") zu ersetzen, wenn dieser am Beginn des Pfades steht.


Dann haette man in den Pfaden aber zwei unterschiedliche Arten von Platzhaltern. Die einen (wie z.Bsp. "${jahr}"), die zum Zeitpunkt des Abrufs von der Bank aufgeloest werden. Und dann noch andere (wie "~"), die erst zum Zeitpunkt des Zugriffs auf die Datei aufgeloest werden. Und dann kommt der erste Windows-User, der "~" im Ordner- oder Dateinamen verwendet, weil das dort eben geht. Die Konfigurierbarkeit der Pfade beim Abruf der Kontoauszuege ist bereits jetzt komplex genug. Ich moechte da nicht noch mehr Featuritis reinbauen.
ds10
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 165
Dabei seit: 08 / 2018
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 31.01.2020 - 21:44 Uhr  ·  #9
Zitat geschrieben von hibiscus
Und dann kommt der erste Windows-User, der "~" im Ordner- oder Dateinamen verwendet, weil das dort eben geht.
Deshalb meinte ich auch nur den Platzhalter "~", wenn der ganz am Anfang steht, denn das geht unter Windows nicht, da zuerst der Laufwerksbuchstabe käme. Oder eben gleich "~/" am Anfang.

Zitat geschrieben von hibiscus
Die Konfigurierbarkeit der Pfade beim Abruf der Kontoauszuege ist bereits jetzt komplex genug. Ich moechte da nicht noch mehr Featuritis reinbauen.
Ja das ist schon verständlich, man muss auch darauf achten, die Komplexität nicht zu hoch zu schrauben.

Wie schon geschrieben ist ein Symlink definitiv eine brauchbare Lösung.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11386
Dabei seit: 03 / 2005
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 01.02.2020 - 09:40 Uhr  ·  #10
Mit "~" wäre es aber relativ zu Homebereich des Users. Wenn tatsächlich relative Pfade, dann wäre doch relativ zum Jameica-Benutzerordner sinnvoller, oder?
ds10
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 165
Dabei seit: 08 / 2018
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 01.02.2020 - 17:43 Uhr  ·  #11
Das wäre dann die komplette Unterstützung für relative Pfade. Den Platzhalter "~" zu unterstützen war nur mein Vorschlag für einen möglichen Kompromiss, der nicht direkt relative Pfade hinzufügt, sondern nur die Ersetzung von "~" am Anfang mit System.getProperty("user.home"). Das würde das ursprüngliche Problem des Nutzers lösen, ohne dass der ganze Aufwand für relative Pfade notwendig würde.

Das sollte dann funktionieren, wenn die Kontoauszüge unterhalb des Nutzerverzeichnisses liegen, wenn sie da nicht sind, sondern ganz woanders, dann geht es natürlich nicht mit "~".

Ich hatte das Problem bei TV-Browser auch und das dann tatsächlich so gelöst, wie deine Idee es relativ zum Einstellungsverzeichnis zu beziehen. Siehe:
https://sourceforge.net/p/tvbr…ities.java

Ab Zeile 1246 die Methoden checkForRelativePath und translateRelativePath. Die Idee dahinter ist, einfach alles was als relativer Pfad gespeichert werden kann, auch als solcher abzuspeichern. Der Benutzer bekommt davon in der Regel gar nichts mit, da diesem immer der vollständige Pfad angezeigt wird.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11386
Dabei seit: 03 / 2005
Betreff:

Re: Linux - relative Pfade für Kontoauszüge

 · 
Gepostet: 03.02.2020 - 09:15 Uhr  ·  #12
Bei den Konfigurationsdateien der Bankzugänge (die Passport-Dateien) gibt es genau sowas auch bereits. Dort wird geprüft, ob sich der Pfad zur Passport-Datei innerhalb des Jameica-Benutzerordners befindet. Wenn das der Fall ist, wird der Pfad "relativiert". Dafür gibt es sogar Funktionen direkt in Jameica:

Application.getPlatform().toRelative(String)
Application.getPlatform().toAbsolute(String)

Bei einfach abzuspeichernden Dateien sehe ich da auch kein Problem. Wenn aber sowohl im Dateinamen als auch im Ordner noch dynamische Platzhalter hinzukommen (https://github.com/willuhn/hibiscus/blob/master/src/de/willuhn/jameica/hbci/server/KontoauszugPdfUtil.java#L368), die Ordner-Strukturen on demand automatisch erstellt werden und das Speichern der ganzen Kontoauszüge alternativ auch über einen Server per "jameica.messaging"-Plugin erfolgen kann, dann ist da bereits eine Komplexität drin, die ich nich noch weiter erhöhen will.
Gewählte Zitate für Mehrfachzitierung:   0