Como executar o Applescript na montagem em disco


11

Quero executar um Applescript quando montar um disco específico. Não é se o script está localizado no disco ou não, ele deve ser executado apenas quando o OS X montar o disco.

Tentei fazer isso com ações de pasta, mas parece que não é possível fazer dessa maneira.

Esclarecimento:

  1. Chego em casa com meu Macbook
  2. Conecto meu hub USB ao dispositivo
  3. Discos externos são montados no OS X
  4. Meu Applescript é executado, faz algumas coisas nesses discos

Quero automatizar a etapa 4.


Respostas:


4

Você não menciona em que contexto está montando o disco, mas e o contrário e montar o disco com o Applescript?

Menciono o contexto porque, ao montar um disco com o Applescript, é grande a ressalva de que, se for um volume de rede e a rede estiver protegida por senha, o nome do usuário e a senha teriam que ser armazenados como texto sem formatação no script para uma perfeita execução.

ATUALIZAÇÃO: Um pouco de pesquisa encontrou uma pergunta semelhante em outro lugar. Essencialmente, um script pode ser criado para isso, aplicando-o como uma Ação de Pasta em / Volumes:

on adding folder items to this_folder after receiving these_items
    repeat with aItem in these_items
        tell application "Finder"
            if (local volume of aItem) and (name of aItem is "[Name of Hard Drive]") then
                -- do something with the drive
                -- eject aItem
            end if
        end tell
    end repeat
end adding folder items to

Não quero montar um disco com o AS, quero executá -lo quando um disco for montado. Vou editar minha postagem para torná-la mais clara.
jsadfeew

Eu entendi a pergunta, mas acho que não é possível fazer isso com muita facilidade. No entanto, trabalhei um pouco e encontrei algo que deveria funcionar com alguns ajustes para atender às suas necessidades.
Philip Regan

Fiz algumas pequenas modificações no script. Funciona bem :)
jsadfeew

12

A solução provavelmente mais robusta é criar um launchdtrabalho com a StartOnMountpropriedade configurada para -boolean YES:

StartOnMount <boolean>
Essa chave opcional faz com que o trabalho seja iniciado toda vez que um sistema de arquivos é montado.

É assim que o Time Machine faz isso (consulte /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Eu sinto que essa é a solução mais robusta, pois depende apenas do launchd, que é onde "esse tipo de coisa" reside corretamente.
30512 Matt

2

Use uma ação de pasta do Finder que monitore / volumes. Quando uma nova pasta aparece, isso significa que um novo disco foi anexado. Agora, o FolderAction pode executar uma ação do Automator, AppleScript ou shell script para fazer o seu trabalho.



0

Uma solução seria criar um aplicativo Automator encadeando as três ações a seguir:

  • Obter itens do Finder especificados
  • Montar imagem de disco
  • Execute o AppleScript

11
Novamente, não quero montar uma imagem ou um disco com o Applescript, quero executar um script quando um disco é montado. Não consigo encontrar uma maneira de conseguir isso com seus passos.
jsadfeew

Sim, vejo depois de esclarecimentos que não funciona porque é o disco rígido que você está montando (e não o disco de imagem).
kraymer

Como sua resposta aborda uma pergunta diferente da que é solicitada, você deve excluí-la.
DanielSmedegaardBuus

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.