Cron jobs e pranchetas

1

O Pbpaste não parece funcionar como esperado quando eu o executo em um cron job.

Eu tenho um applescript que abre um arquivo PDF no Preview e envia o comando copy e fecha o Preview. Em seguida, eu gostaria de colá-lo em um arquivo, pbpaste > pasta.txt. Isso tudo funciona muito bem, quando eu o executo como eu mesmo.

No entanto, se eu colocá-lo como uma tarefa no crontab -e, ele é executado corretamente e até mesmo criou o arquivo de saída, mas o conteúdo está vazio. É como se o contexto em que a corrida estivesse acontecendo tivesse um conceito diferente da placa de clipe.

Meu crontab é assim:

* * * * * cd /Users/bemmu/Public;osascript yeah.script

E sim.script é assim:

do shell script "open tiliote.pdf"
delay 2
tell application "Preview"
    activate
    delay 2
    tell application "System Events" to keystroke "a" using {command down}
    delay 2
    tell application "System Events" to keystroke "c" using {command down}
    delay 2
    tell application "System Events" to keystroke "q" using {command down}
    delay 2
end tell
do shell script "pbpaste > pasta.txt"

O resultado esperado é que pasta.txt conteria o arquivo PDF no texto e é o que acontece se eu executar este script manualmente. No entanto, se cron executa, macarrão.txt é criado, mas não contém nada (tamanho é 0).

Eu posso ver que a cópia definitivamente é bem sucedida quando executada a partir do cron, como eu mesmo posso colar depois. É só que o pbpaste não parece estar funcionando no cron.

    
por Bemmu 09.12.2010 / 17:53

1 resposta

1

Por que não abandonar o script e usar um fluxo de trabalho do Automator (ou aplicativo compilado), pois eles têm um método dedicado para extrair texto de PDFs em um arquivo de texto.

VocêtambémpodetentarabandonaroCroneexecutaroseuscriptatravésdeumLaunchAgent.Exemplo:

~/Library/LaunchAgents/us.peelman.Terminal.plist

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>us.peelman.TerminalLauncher</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal</string>
    </array>
</dict>
</plist>
    
por 10.12.2010 / 03:40