Ich würde mich sehr über Unterstützung bei folgendem freuen.
Mein Szenario:
Ich habe eine Mac-App, die RTF-Dateien generiert. Ich habe eine Android-App, die sich mit MultiMarkdown/Markdown-Dateien befasst.
Die Mac-App arbeitet mit Projekten, und diese enthalten eine beliebige Anzahl von Dateien. Es kann die Dateien in einem bestimmten Projekt automatisch mit einem Ordner synchronisieren. Im Wesentlichen wird es bei jeder Synchronisierung (beim Öffnen und Schließen und manuell) eine Reihe von Dateien in den Ordner legen. Alle Änderungen an diesem Ordner werden automatisch mit meinem Android-Gerät synchronisiert.
Ich muss sie jedoch vorher in .mmd-Dateien konvertieren und wieder in RTF konvertieren, wenn die Dateien geändert (oder neu) vom Android-Gerät eingehen.
Also hier ist, was ich im Sinn habe. Ich möchte die Dinge so einrichten, dass beim Synchronisieren von Dateien aus der Mac-App in ihren Zielordner diese Dateien automatisch von RTF in MMD konvertiert werden. Ich habe bereits die Skripte, die die eigentliche Konvertierung durchführen. UND wenn sich die MMD-Dateien ändern, werden sie automatisch in RTF-Dateien konvertiert. Dazu habe ich auch ein Skript.
Die Fragen, die ich habe, sind diese:
Zwei-Wege-Konvertierung:
Aber natürlich wird dadurch eine Endlosschleife erzeugt, da jede Aktion endlos die umgekehrte Aktion auslöst.
Ein möglicher Weg, diese Endlosschleife zu umgehen, könnte folgender sein:
Aber vielleicht gibt es einen besseren Weg?
Ich bin sehr daran interessiert, mehr über Scripting zu erfahren und dabei dieses Problem zu lösen.
Gibt es Leute mit umsetzbaren Ideen, wie ich das erreichen kann, was ich hier zu erarbeiten hoffe?
Ich würde ein Skript erstellen, das beide Ordner überwacht. Meine bevorzugte Sprache dafür ist Python. AppleScript ist für diese Art von Operation nicht besonders gut geeignet. Die Grundidee besteht darin, die beiden fraglichen Ordner auf FSEvents zu überwachen, und wenn eines auftritt, den Ereignisstrom schnell für den anderen Ordner zu entplanen, einige Konvertierungs- und Synchronisierungsvorgänge durchzuführen und dann den zuvor ungeplanten Ereignisstrom neu zu planen.
Das fertige Skript, hier heruntergeladen, mit modifizierten Versionen dieser Skripte, die Sie mir gezeigt haben. Die Installation von MacFSEvents erfolgt jetzt automatisch: https://www.dropbox.com/s/oylvewk90ezwb3s/File%20Sync.app.zip?dl=1
Hier sind die Schritte zur Verwendung:
Extrahieren Sie das Applet, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Paketinhalt anzeigen“, öffnen Sie „Inhalt“ und „Ressourcen“ und bearbeiten Sie dann die Plist darin mit Ihren RTF- und MMD-Ordnerpaarungen. Sie können so viele Paare angeben, wie Sie benötigen, um miteinander synchronisiert zu bleiben, halten Sie sich einfach an das gleiche Format wie das, was ich in der plist verwendet habe: Ein Array pro Paar, das jeweils zwei Elemente enthält, wobei das erste Element der Pfad zu ist den RTF-Ordner, der zweite ist der Pfad zum MMD-Ordner. Sie sehen dies, wenn Sie die plist öffnen.
Dies sollte ohne Probleme funktionieren. Die Ordner werden nun auf jede Art von Änderung überwacht und die Dateien werden konvertiert und in den anderen Ordner übertragen.
Ich bin dafür, dass Leute lernen, wie man Dinge schreibt, aber für den täglichen Gebrauch und die Flexibilität ist die Neuimplementierung von Teilen von Hazel von NoodleSoft weniger leistungsfähig und effizient für eine Allzwecklösung.
Nochmals ein großes Lob an Froggard und Inspired Life für die hervorragende Antwort und die praktische Frage.
inspiriertz
inspiriertz
William T. Froggard