Acabei de me inspirar neste projeto:
Bem, eu queria fazer algo semelhante, depois que o dpkg coloca algo novo no diretório /usr/share/applications, mas para onde meu script deve apontar e o parâmetro a ser passado?
Responder1
Caso o script não possua parâmetros, adicione um arquivo em /etc/apt/apt.conf.d/
, por exemplo 92local
(números são usados para forçar a ordem de execução dos scripts naquele diretório), com o seguinte conteúdo:
DPkg::Post-Invoke { "/path-to/my-script"; };
e lembre-se de torná-lo executável.
Não é possível encontrar no momento informações sobre como passar parâmetros ou entradas para o script.
Se puder ajudar, ao executar apt
na linha de comando, você deve encontrar a linha de comando na variável de ambiente SUDO_COMMAND
.
Responder2
Eu encontrei uma maneira de executar a linha de comando do comando APT:
Crie um arquivo /etc/apt/apt.conf.d/90my_dpkg_post_invoke
com conteúdo
DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }
Crie um arquivo executável /usr/local/lib/my_dpkg_post_invoke.sh
com conteúdo
#!/bin/bash
APTPID=$( ps -ho ppid "${PPID}" )
APTPID="${APTPID## }" # trim leading spaces
APTCMD=$( ps -ho args "${APTPID}" )
APTCMD="${APTCMD## }" # trim leading spaces
echo "#### APT Command: ${APTCMD}"
Agora você pode estender o arquivo executável com um teste se ${APTCMD}
contiver uma string para a qual deseja acionar uma ação.