Problemas na execução de um comando osascript via cron

1

Eu tenho um pequeno script de shell que cria um novo lembrete para um projeto. Isso funciona muito bem e eu posso executar na linha de comando newCfSamples "my new sample"e o lembrete é criado.

Agora tenho um pequeno script R, que descobre quais amostras são novas e deve criar um lembrete para isso. Esse script também funciona bem e cria os lembretes.

Os dois juntos, então cron está começando meu script R falhar no momento em que ele está executando o meu pequeno newCfSamplesscript com a seguinte mensagem de erro: execution error: Reminders got an error: An error of type -1743 has occurred. (-1743).

Então iniciei meu script diretamente crone isso também falha. Aqui está a mensagem de erro completa.

Subject: Cron <madejung@madejung-2> /Users/madejung/bin/newCfSamples test
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=madejung>
X-Cron-Env: <USER=madejung>
X-Cron-Env: <HOME=/Users/madejung>
Date: Wed, 14 Sep 2016 15:42:00 +0200 (CEST)

290:540: execution error: Reminders got an error: An error of type -1743 has occurred. (-1743)

Seria ótimo se alguém me ajudasse a fazer isso funcionar.

Meu newCfSamplesscript fica assim:

#!/usr/bin/env bash                                                                                                               
# Make a new reminder via terminal script                                                                                         
# args: remind <title> <date> <time>                                                                                                                                                                                 
my_date=`date "+%d/%m/%Y"`
my_time='09:00'
osascript - "$1" "${my_date}" "${my_time}" <<END                                                                                                        
on run argv                                                                                                                       
    set stringedAll to date (item 2 of argv & " " & item 3 of argv)                                                               
    tell application "Reminders"                                                                                                  
        make new reminder in list "CF User Sample" with properties {name:item 1 of argv, due date:stringedAll}                                             
    end tell                                                                                                                      
end run                                                                                                                           
END
drmariod
fonte
Como não o faço R, não posso realmente reproduzir seu ambiente para testar, no entanto , executei o script que você postou, alterando o list item para um destino apropriado e ele correu bem no Terminal e foi usado launchdcom o script definido como um Agente de Inicialização . (Eu não uso cronmais porque é depreciado no OS X.) Isso ocorre com o sistema conectado e não bloqueado. BTW, qual será o espaço em branco totalmente desnecessário no seu script? Estou falando de todo o espaço à direita após 10 das 13 linhas de código, como mostrado nesta imagem .
user3439894
Na verdade, eu apenas comecei a usar osascripte copiar e colar as linhas de uma fonte online. Recebi algumas mensagens de erro estranhas, 567:570: syntax error: Expected end of line, etc. but found command name. (-2741)então pensei que o espaço em branco estivesse correto :-) @ user3439894 você poderia talvez fornecer sua solução? Também testei com launchda GUI, LaunchControlmas isso também não cria as entradas de tarefas. Desde já, obrigado.
drmariod 15/09/16
@ user3439894 talvez mais uma coisa, quando eu executei meu script de shell, sempre havia uma mensagem pop-up pedindo permissão para mudar Reminders. Além disso, quando eu começar a usar isso dentro do meu script R. Talvez isso esteja faltando no Launchdcaminho? Mas isso não me perguntou?
drmariod 15/09/16
Existe uma maneira de sempre permitir que o R acesse Lembretes? Hoje fui perguntado novamente. Gostaria de saber se vou ignorar isso de novo?
drmariod 16/09/16

Respostas:

1

Eu acho que encontrei a solução. Como mencionei nos comentários acima, estou usando a GUI LaunchControl , iniciei o trabalho uma vez manualmente com o menu Trabalho -> Iniciar e recebi uma pequena janela pop-up se R pudesse acessar os Lembretes. Eu cliquei que sim e agora está funcionando.

Parece que esse pop-up não pôde ser exibido, então eu nunca poderia permitir isso.

É assim que a entrada LaunchControl se parece

drmariod
fonte