Automator termine une tâche avant de continuer?

2

Automator exécute plusieurs commandes applescript que je souhaite exécuter de manière séquentielle. Par exemple, j'ai une empty trashcommande, puis une shut downcommande. Lorsque j'exécute le script, l'ordinateur s'arrête avant que la corbeille ne vide plus de quelques fichiers.

Comment puis-je m'assurer que l'automate exécute une tâche avant de poursuivre?

J'ai également une commande de terminal pour la sauvegarde en utilisant la machine à remonter le temps. Je voudrais aussi que celui-ci se termine avant la fermeture.

JShoe
la source
Je pense que empty trashdevrait normalement bloquer le script. Et si cela s’arrête parce qu’un fichier est en cours d’utilisation, le workflow doit s’arrêter à cause d’une erreur. Pouvez-vous inclure le script complet ou le flux de travail? Vous pouvez utiliser tmutil startbackup -bpour la sauvegarde.
Lri

Réponses:

1

Malheureusement, empty trashun message est envoyé au Finder et, du point de vue d'Automator, la tâche se termine lorsque le message est envoyé.

Dans cette conversation, il y a une solution possible. Vous devez modifier votre tâche Applescript en vérifiant la taille de la corbeille:

tell application "Finder"
    set first_size to ""
    set second_size to " "
    set trash_folder to (path to trash folder)

    empty trash

    repeat until first_size is equal to second_size
        set first_size to size of (info for trash_folder) as integer
        delay 2
        set second_size to size of (info for trash_folder) as integer
    end repeat
end tell

De cette façon, la tâche ne se terminera pas tant que la taille de la corbeille ne diminuera plus.

Si vous utilisez tmutil pour la commande time machine backup terminal, il existe une -boption pour la startbackupcommande qui indique au script d'attendre la fin de la sauvegarde avant de quitter.

Riccardo Marotti
la source