Move and Preserve Links!
Ich bin ein großer Fan von Symlinks! In meinem Home-Verzeichnis benutze ich sie gerne, um Informationen über verschiedene Pfade zugänglich zu machen -- z. B. Ordner mit Fotos, auf die ich dann nach Jahr, Ort oder Kategorie zugreifen kann. So weit, so gut -- problematisch wird's, wenn ich anfange, Dateien/Order zu verschieben oder umzubenennen, so dass alle darauf verweisende symbolische Links plötzlich ins Leere zeigen.
Um dem Problem beizukommen, habe ich mvpl
geschrieben -- eine Art Dateimanager, der versucht, symbolische Links beim Verschieben oder Umbenennen von Dateien oder Verzeichnissen aktuell zu halten. Implementiert in FreePascal/Lazarus; vielleicht re-implementiere ich das irgendwann zum Spaß noch in anderen Sprachen (z. B. in GAMBAS).
Derzeit ist das Tool aufgrund system-spezifischer Aufrufe von Funktionen für die Arbeit mit Symlinks und dem Papierkorb nur Linux-tauglich, aber eine Erweiterung auf andere Betriebssysteme sollte grundsätzlich möglich sein -- so lange diese Symlinks und einen Desktop-Papierkorb unterstützen. Weiterhin ist es derzeit nicht möglich, Dateien/Verzeichnisse über Dateisystem-Grenzen hinweg zu verschieben. Das sollte aber nicht so schwierig zu implementieren sein, da es im Code bereits rekursive Funktionen zum Kopieren und Löschen gibt.
Features
Allgemeines
- Typisches Datei-Manager-Layout mit einem Verzeichnisbaum links und einer Liste des Verzeichnisinhalts rechts
- Rückgängig/Wiederholen-Funktion
Navigation
- Zurück/Vorwärts
- Eine Ebene höher
- Link-Ziel öffnen
Datei-Operationen
- Umbenennen
- In den Papierkorb verschieben (
gio
muss installiert und imPATH
sein) - Dauerhaft löschen (nicht rückgängigmachbar!)
- Verzeichnis erstellen
Drag'n'drop eines Objekts aus der Verzeichnisinhaltsliste auf ein Verzeichnis in einem beliebigen der beiden Panels
- Hierhin verschieben
- Hierhin kopieren (rekursiv)
- Relativen Symlink erstellen
- Absoluten Symlink erstellen
Build
- Repository von GitLab klonen
- Lazarus (4.0 oder neuer) starten
- Die
mvpl.lpr
-Datei impascal
-Unterverzeichnis öffnen - Build-Modus auswählen (debug|release)
- Zum Debuggen das
./mktestroot
-Skript im Wurzelverzeichnis des Projekts aufrufen, um den Test-Verzeichnisbaum zu erstellen, der im Debug-Modus vorausgewählt ist - Den "Run"-Button klicken; nach erfolgreicher Kompilierung findet sich das
mvpl
-Executable impascal
-Unterverzeichnis