O primeiro e maior problema é que você está usando as chaves Program
e ProgramArguments
erradas. Eles são bastante confusos porque correspondem aos dois primeiros argumentos para execvp
e, a menos que você entenda execvp
, não entenderá essas chaves corretamente. Mas há uma maneira simples de fazer isso na maioria dos casos: não use Program
e coloque o caminho completo para o programa na primeira string em ProgramArguments
:
<key>ProgramArguments</key>
<array>
<string>/usr/local/rvm/wrappers/scratch-monitor/ruby</string>
<string></string>
<string>scratch-clean.rb</string>
</array>
(Nota: Estou assumindo que você está tentando passar um primeiro argumento em branco para o programa - se não, remova o <string></string>
.)
O segundo problema que vejo é a chave WorkingDirectory
- tenho certeza de que não expandirá ~
neste contexto, então você precisa especificar o caminho completo explicitamente:
<key>WorkingDirectory</key>
<string>/Users/chan/automation-scripts/</string>
Por fim, acho que você também pode precisar especificar a hora e o minuto para iniciá-lo em:
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key>
<integer>7</integer>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>15</integer>
</dict>