Apprezzerei molto l'assistenza con quanto segue.
Il mio scenario:
Ho un'app per Mac che genera file RTF. Ho un'app per Android che tratta i file MultiMarkdown / Markdown.
L'app Mac funziona con i progetti e questi contengono un numero qualsiasi di file. Può sincronizzare automaticamente i file di un determinato progetto in una cartella. Essenzialmente, inserisce nella cartella un mucchio di file ogni volta che si sincronizza (all'apertura, alla chiusura e manualmente). Qualsiasi modifica a tale cartella viene automaticamente sincronizzata sul mio dispositivo Android.
Tuttavia, ho bisogno che vengano convertiti in file .mmd prima che ciò accada e convertiti in formato RTF quando i file vengono modificati (o nuovi) dal dispositivo Android.
Quindi ecco quello che ho in mente. Quello che vorrei è impostare le cose in modo tale che quando i file vengono sincronizzati dall'app Mac alla loro cartella di destinazione, quei file vengono automaticamente convertiti da RTF a MMD. Ho già gli script che faranno la conversione effettiva. E quando i file MMD cambiano, saranno automaticamente convertiti in file RTF. Ho anche uno script per questo.
Le domande che ho sono queste:
- Come posso monitorare automaticamente una cartella per le modifiche al suo contenuto ed eseguire uno script se i file cambiano in quella cartella?
- Come potrei rendere questo lavoro a due vie, senza gettare tutto in un ciclo infinito? All'inizio pensavo di poter fare quanto segue:
Conversione a due vie:
- Crea due cartelle sul Mac. Uno è per i file RTF, l'altro è per i file MMD.
- Configura l'app Mac per sincronizzare i dati in entrata e in uscita dalla cartella RTF
- Imposta il Mac sul sistema di sincronizzazione Android (Dropbox, Bittorrent Sync, ecc.) per sincronizzare il contenuto della cartella MMD con una cartella sul dispositivo Android.
- Quando il contenuto delle cartelle RTF cambia, convertire i file in MMD e inserire l'output nella cartella MMD. E viceversa.
Ma, ovviamente, questo creerà un ciclo infinito, perché ogni azione attiverà l'azione inversa, all'infinito.
Un modo possibile per aggirare questo ciclo infinito potrebbe essere questo:
- La cartella RTF ha assegnato lo script R. Quando il contenuto cambia, lo script R viene eseguito.
- La cartella MMD ha assegnato lo script M. Quando il contenuto cambia, lo script M viene eseguito.
- Quando viene rilevata una modifica nella cartella RTF, la prima cosa che lo script R fa è disabilitare lo script M dall'attivazione. L'ultima cosa che lo script R fa prima di uscire è abilitare nuovamente lo script M. In questo modo M non "noterà" che il contenuto della cartella cambia mentre R sta aggiornando il suo contenuto con i file appena convertiti.
- Lo stesso si applica al contrario.
Ma forse c'è un modo migliore?
Sono desideroso di saperne di più sugli script e nel processo risolvo questo problema.
Ci sono persone con idee plausibili su come ottenere ciò che spero di risolvere qui?