Notificações Growl para conclusão de tarefas do Shell

Notificações Growl para conclusão de tarefas do Shell

(Específico para OSX)

Eu, como muitos outros além de mim, muitas vezes me encontro iniciando um processo no shell que leva um ou dois minutos para ser concluído (um grande svn commit, por exemplo). Durante esse tempo, muitas vezes eu uso Alt-Tab e atualizo reddit/slashdot/wikipedia/whatever. Seria ótimo ter algo configurado que publicasse uma notificação quando o processo do shell terminasse.

No meu mundo ideal, funcionaria assim: “Se um processo acabasse de sair de uma guia aberta no Terminal, poste uma notificação de rosnado”.

Alguém mais tem algo assim configurado?

Responder1

Você pode instalarrosnarnotificarpara fazer isso.

$ ./some_program && growlnotify Title -m Message

É claro que você precisaria pensar nisso antes de executar seu comando. A alternativa (mas não sei como conseguir isso) seria uma notificação Growl para cada comando, o que seria extremamente irritante.


Para simplificar o uso do growlnotify para seu caso de uso, edite ~/bash_profilee adicione o seguinte:

function long {
    $@
    /usr/local/bin/growlnotify Finished -m 'Done'
}

agora você pode simplesmente long your_command(semelhante a sudo). Ctrl-Aposiciona o cursor no início da linha, se você (como eu) sempre digite o comando real primeiro e precise adicionar o prefixo depois.

Infelizmente, meu bash-fu é insuficiente para adicionar o comando à growlnotifymensagem


de acordo com o comentário de @mankoff a esta resposta:

Você pode simplesmente digitar enquanto o comando está em execução, ele será executado posteriormente. Eu criei a seguinte função para mim:

function gn {
    /usr/local/bin/growlnotify Finished -m "$@"
}

Use como gn svn.

Responder2

O que você precisa é growlnotifyde um programa CLI para acionar notificações de rosnado. Você poderia usá-lo como:

./script.sh;; growlnotify -m "done"

Tem mais alguns botões com os quais você pode brincar, use growlnotify -hpara obter mais informações

Responder3

Modificando a resposta de Daniel Beck, se você fizer essa pequena mudança, ficará muito bom.

function long {
    command=$@
    $command
    /usr/local/bin/growlnotify Finished -m "$command completed."
}

Então, quando você executar 'long svn up' você verá a mensagem 'svn up concluído'.

Muito bom se você executar muitos scripts de shell demorados ao mesmo tempo.

Responder4

Usarrosnarnotificar.

ls && growlnotify -H localhost -m "message"

informação relacionada