Applescript para ocultar um aplicativo / alias

0

Estou tentando escrever um aplicativo usando o Applescript no Automator que é executado no terminal em um Mac Air executando o Sierra. A conta usando o aplicativo tem o controle dos pais definido, mas eu preciso dar-lhes acesso ao terminal para executar o aplicativo. Por fim, não queremos que os usuários da conta tenham acesso ao terminal. Então, estou tentando descobrir uma maneira de excluir ou ocultar o alias.

Eu posso excluir o alias usando o script abaixo, mas quando eles tentam usar o aplicativo novamente, isso não funciona porque o Terminal não está mais disponível:

tell application "System Events" to delete alias "/Path/to/Library/Managed Items/My Applications/Terminal"
end tell

Quando tentei ocultar o alias, como visto abaixo, recebi um erro informando que o processo não pode ser definido como falso:

tell application "System Events" 
        set visible of application process "/Path/to/Library/Managed Items/My Applications/Terminal" to false
end tell

Não tenho certeza se posso carregar o Terminal no início do script e, em seguida, excluí-lo no final OU se houver uma maneira de ocultar o alias.

Qualquer sugestão seria muito apreciada !!

Aqui está o meu código inteiro:

on run {input, parameters}

tell application "System Events"
    key code 21 using option down
end tell --used to deactivate trackpad

tell application "Terminal"
    activate
    tell application "Terminal"
    do script "su <admin account>" --not root
    delay 2
    tell application "System Events"
        keystroke "<password>" & return
        delay 2
        keystroke "sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/" & return --used to disable keyboard
        delay 2
        keystroke "<password>" & return
        delay 2
        keystroke "exit" & return
        delay 2
        tell application "Terminal"
            do script with command "rm -R release.zip; rm -R release; wget https://URL/for/webserver/release.zip; unzip release.zip; rm -rf __MACOSX" in window 1 --deletes old configuration .zip file and folder; downloads new configuration files; unzips new configuration files
            delay 15
        end tell
        tell application "Terminal"
            do script with command "su <admin account>" in window 1
            delay 2
            tell application "System Events"
                keystroke "<password>" & return
                delay 2
                keystroke "sudo kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/" & return --reloads keyboard
                delay 2
                keystroke "exit" & return
                delay 2
            end tell
            tell application "Terminal"
                do script with command "release/pc-release-mac.command --config config.properties; exit" in window 1 --Launches print release software
            end tell
        end tell
    end tell
    delay 2
    tell application "Terminal"
        quit
    end tell
end tell
end tell
end tell

tell application "System Events"
    key code 21 using option down
end tell --reactivates trackpad

return input
end run

Qualquer melhoria seria muito apreciada! Eu sou novo no script, então eu me atrapalhei com a maior parte disso.

    
por krees 07.09.2017 / 21:55

2 respostas

1

Se você usar o comando “do Shell script” em um AppleScript, o comando será executado sem iniciar o terminal.app aqui está um exemplo do AppleScript “do shell script” para testar. Observe que o terminal nunca é lançado.

display dialog (do shell script "curl ifconfig.co") with icon 2 buttons "OK" default button 1 with title "Your Current IP Address Is.." giving up after 5
    
por 07.09.2017 / 23:10
1

Depois de ler os comentários postados por 8bittree e wch1zpink, decidi examinar o uso do Applescript para executar scripts de shell. Consegui obter tudo o que eu precisava em um script simples e fácil que não requeria terminal. Meu problema antes de tentar usar o shell script era que eu tinha deixado o script padrão na janela. Depois que o removi, o código abaixo fez exatamente o que eu precisava:

do shell script "rm -R /Users/<account>/release.zip; rm -R /Users/<account>/release; curl -L https://URL/to/webserver/release.zip -o /Users/<account>/release.zip; unzip -o /Users/<account>/release.zip -d /Users/<account>; rm -rf /Users/<account>/__MACOSX; /Users/<account>/release/pc-release-mac.command --config config.properties"

Não requer o Terminal; não requer desabilitar o teclado; não requer desabilitar o trackpad; não exige que as senhas sejam codificadas.

Obrigado a ambos por me darem uma direção !!!

    
por 08.09.2017 / 15:37