Faça o Applescript esperar que um aplicativo seja fechado antes de executar um script de shell

0

Eu tenho um applet que eu fiz usando o Applescript, que abre um aplicativo e, depois de carregado, executa um script de shell que descarrega o Spotlight. Eu preciso fazê-lo, em seguida, esperar por mim para terminar de usar o aplicativo relevante antes de executar outro script de shell para carregar o Spotlight novamente.

Meu código atualmente se parece com:

set appname to “Applications/Cubase 5.app”
    tell application appname to launch
        repeat until application appname is running    
        delay 1
        end repeat
if application appname is running then
    do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges
    end if
activate appname

Eu tentei de tudo, mas não consigo descobrir. Eu encontrei e modifiquei este script com meu conhecimento limitado, mas não entendo como ele funciona

Qual código eu preciso adicionar para que ele espere que eu encerre o aplicativo para executar o segundo script de shell que eu sei que é:

do shell script "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges

qual iria recarregar o Spotlight?

Eu vim com o seguinte que compila mas não faz como esperado:

set appname to “Applications/Cubase 5.app”
    tell application appname to launch
        repeat until application appname is running    
        delay 1
        end repeat
if application appname is running then
    do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges
    end if
activate appname
    repeat until application appname is not running
    delay 1
    end repeat
if application is not running then
    do shell script "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges
end if

Dá-me o erro Não é possível executar o aplicativo . Eu posso ver que algo está faltando, só não sei o quê.

Sou novo na Apple e no Applescript e uma resposta será muito apreciada.

    
por Ambush 13.01.2015 / 12:49

1 resposta

1

você quer testar se não está sendo executado

set appname to “Applications/Cubase 5.app”
    tell application appname to launch
        repeat until application appname is not running    
            delay 1
        end repeat
if application appname is running then
    do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges
end if
activate appname
    
por 13.01.2015 / 13:52