Ich würde mich sehr über Unterstützung bei den folgenden Themen 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 funktioniert mit Projekten, die eine beliebige Anzahl von Dateien enthalten. Es kann die Dateien in einem bestimmten Projekt automatisch mit einem Ordner synchronisieren. Im Wesentlichen werden bei jeder Synchronisierung (beim Öffnen und Schließen sowie manuell) eine Reihe von Dateien in den Ordner gestellt. 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 vom Android-Gerät geändert (oder neu) eingehen.
Also hier ist was ich vorhabe. Ich möchte die Einstellungen so vornehmen, dass beim Synchronisieren von Dateien von der Mac-App in den 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. Ich habe auch ein Skript dafür.
Die Fragen, die ich habe, sind diese:
- Wie kann ich einen Ordner automatisch auf Änderungen an seinem Inhalt überwachen und ein Skript ausführen, wenn sich Dateien in diesem Ordner ändern?
- Wie könnte ich das in beide Richtungen funktionieren lassen, ohne alles in eine Endlosschleife zu werfen? Zuerst dachte ich, ich könnte Folgendes tun:
Zweiwege-Konvertierung:
- Erstellen Sie zwei Ordner auf dem Mac. Eine für RTF-Dateien, die andere für MMD-Dateien.
- Richten Sie die Mac-App so ein, dass ihre Daten aus dem RTF-Ordner heraus und wieder hinein synchronisiert werden
- Stellen Sie den Mac auf das Android-Synchronisierungssystem (Dropbox, Bittorrent Sync usw.) ein, um den Inhalt des MMD-Ordners mit einem Ordner auf dem Android-Gerät zu synchronisieren.
- Wenn sich der Inhalt von RTF-Ordnern ändert, konvertieren Sie die Dateien in MMD und legen Sie die Ausgabe im MMD-Ordner ab. Und umgekehrt.
Offensichtlich führt dies jedoch zu einer Endlosschleife, da jede Aktion endlos die umgekehrte Aktion auslöst.
Ein möglicher Weg, um diese Endlosschleife zu umgehen, könnte sein:
- Dem RTF-Ordner ist Skript R zugewiesen. Wenn sich der Inhalt ändert, wird Skript R ausgeführt.
- Dem MMD-Ordner ist Skript M zugewiesen. Wenn sich der Inhalt ändert, wird Skript M ausgeführt.
- Wenn eine Änderung im RTF-Ordner festgestellt wird, deaktiviert Skript R als erstes das Auslösen von Skript M. Das letzte, was Skript R vor dem Beenden tut, ist, Skript M wieder zu aktivieren. Auf diese Weise „merkt“ M nicht, dass sich der Ordnerinhalt geändert hat, während R seinen Inhalt mit frisch konvertierten Dateien aktualisiert hat.
- Das gleiche würde umgekehrt gelten.
Aber vielleicht gibt es einen besseren Weg?
Ich möchte gerne mehr über Skripterstellung erfahren und dabei dieses Problem lösen.
Gibt es Leute mit realisierbaren Ideen, wie ich das erreichen kann, was ich mir erhoffe?
quelle
Ich bin alles für Leute, die lernen, wie man Dinge schreibt , aber für den täglichen Gebrauch und die Flexibilität ist die Neuimplementierung von Teilen von Hazel by NoodleSoft für eine Allzwecklösung weniger leistungsfähig und effizient.
Nochmals ein großes Lob an Froggard und Inspired Life für die hervorragende Antwort und die praktische Frage.
quelle