O iCal não executa mais scripts?

12

Tenho algumas tarefas automatizadas na forma de AppleScripts que eu agendaria para executar durante a noite através de um evento iCal. O evento seria simplesmente definido como "executar script" em "0 minutos antes do evento" e eu selecionaria os vários scripts a serem executados.

Desde a atualização para o Mountain Lion, no entanto, "executar script" agora é apenas "arquivo aberto" e os scripts não são executados, eles são abertos no AppleScript Editor.

Tentei compilar os scripts em aplicativos para ver se era possível selecionar aqueles a serem abertos, mas eles não estão disponíveis para seleção no evento (estão acinzentados).

  1. Como posso obter o Calendar para executar meus scripts?
  2. Por outro lado, existe uma maneira melhor de agendar scripts para execução?
David
fonte

Respostas:

10

Eu escrevi uma resposta para uma pergunta sobre o agendamento de trabalhos que poderia resolver alguns dos problemas para você. Isso foi principalmente por um período de folga, porém versus em andamento.

Se você tem um trabalho em andamento, como o que você agendaria através do iCal, launchdtambém funcionará bem.

Mas se você deseja uma substituição definitiva por algo semelhante ao que você fez com o iCal / Calendar, parece que este excelente artigo no quadro de discussões da Apple explica o uso do 'Alarme de calendário' do Automator . Um usuário chegou a dizer que essa nova maneira é ainda mais fácil de usar. Pessoalmente, acho que com o poder extra do Automator, ele também adiciona novo poder.

A partir desse site:

Aqui está uma solução que funciona para mim:

  1. No Automator, crie um alarme de calendário
  2. Selecione Utilitários no painel da biblioteca
  3. Selecione e arraste Executar AppleScript para a área do fluxo de trabalho
  4. Copie / cole o AppleScript na caixa Executar AppleScript
  5. Salve o recém-criado alarme de calendário
  6. Abra Calendar.app, crie um novo evento
  7. Selecione o calendário do Automator como seu calendário de referência
  8. Selecione Abrir arquivo para o alerta e selecione o arquivo que você criou no Automator. Por padrão, o iCal é o arquivo que aparece quando você seleciona Abrir arquivo.
  9. Mude isso para o nome do aplicativo Automator que você criou.
  10. Selecione Outro se o nome do arquivo não for mostrado.

insira a descrição da imagem aqui

O usuário também anexou algumas capturas de tela à postagem, mas eu incluí uma captura de tela do que precisa ser selecionado no Automator.

jmlumpkin
fonte
1
Isso parece ótimo! Será testado com minhas tarefas hoje à noite, mas parece que funcionará esplendidamente. Uma observação interessante sobre as etapas descritas, parece que há uma atualização para elas (possivelmente nova no Mountain Lion, eu não sei). Ao salvar o "arquivo" no Automator, não havia opção para salvá-lo como um arquivo em algum lugar. (O esforço da Apple para se afastar do sistema de arquivos, sem dúvida.) Ele apenas salva com um nome e pronto. E assim que é salvo, o Calendário fica focado com um evento criado automaticamente. Eu apenas tive que ajustar a hora e definir a repetição para o evento.
David
4

Parece que a Apple não carregou a funcionalidade "Executar script" do iCal para o Calendar no Mac OS X 10.8, também conhecido como Mountain Lion.

Você pode agendar aplicativos para execução no Mac OS X de várias maneiras.

Ferramentas de agendamento internas

O método de planejamento interno preferido é usar o launchd (daemon de inicialização). Para usar, launchdvocê cria tíquetes de trabalho iniciados e os coloca em sua ~/Library/LaunchAgents/pasta.

cronestá disponível no Mac OS X, mas não é mais recomendado. No entanto, existem muitos agendamentos que podem ser representados por crone não por launchd.

A documentação de lançamento da Apple é um bom ponto de partida.

Ferramentas de agendamento de terceiros

Se você deseja uma interface gráfica ou mais funcionalidades, existem aplicativos de terceiros disponíveis. Minha empresa desenvolve Power Manager ; outras soluções também existem.

Graham Miln
fonte
Você pode representar agendamentos do tipo cron com o launchd adicionando dicionários StartCalendarInterval suficientes .
Lri
1
A linguagem de agendamento do cron é incrível e extremamente poderosa. Infelizmente, é difícil prever com precisão o que fornece o mesmo poder sem enumerar e testar a cada minuto. Esse é um dos motivos pelo qual o cron não é mais recomendado, ele requer pesquisa; O launchd pode agendar tarefas sem precisar pesquisar.
Graham Miln
0

A resposta do jmlumpkin é direta, mas você pode torná-lo ainda mais fácil para si mesmo. Como descrevi em uma postagem no blog , você não precisa copiar e colar o script no novo fluxo de trabalho criado. Você pode chamar o AppleScript original de dentro do fluxo de trabalho:

on run {input, parameters}

    run script file "Macintosh HD:Some Directory On Disk:a cool script.applescript"

end run
Dov
fonte