Função / alias do Bash para ajuda dos gerenciadores de pacotes

0

Estou usando o Arch Linux. Eu tenho packer instalado para pacotes AUR, mas eu quero poder usar o comando pacman para ambos. Eu acho que vou precisar de uma função para isso - o que eu quero dizer é que sempre que eu uso o pacman, ele vai tentar usar o packer e se isso falhar (opção inválida) ele irá usar o pacman-color. Ele também pode decidir qual programa usar com base nos argumentos. Eu não posso simplesmente usar o packer (alias pacman = 'sudo packer') porque o empacotador não tem algumas opções como -R para remover pacotes. Eu quero sempre usá-lo para instalar e atualizar pacotes no entanto, porque ele pode instalar a partir dos repositórios padrão, bem como AUR.

Alguém sabe como fazer isso ou pode me apontar na direção certa? Eu sou novo no bash scripting.

Obrigado.

EDIT: Eu tentei pacman () { sudo packer $@ || sudo pacman-color $@ } , o único problema é que se o empacotador falhar, ele imprime o erro (por exemplo, pacman -V prints packer: Option '-V' is not valid. ).

    
por mk12 06.07.2010 / 04:12

1 resposta

1

Eu mesmo descobri. Isso funciona muito bem (em .bashrc ou .zshrc ou qualquer outro):

pacman() {
    if [[ $1 = -h* || $1 = "--help" ]]; then
        echo "pacman help:\n"
        /usr/bin/pacman -h
        echo "\n\npacker help:\n"
        packer -h
    elif [[ $1 = -V* || $1 = -Q* ]]; then
        pacman-colour "$@"
    elif [[ $1 = -Si*  || $1 = -Ss* ]]; then
        packer "$@"
    elif [[ ( $1 != -Sy $1 != -Sc* && $1 = -S* ) || $1 = -G* ]]; then
        sudo packer "$@"
    else
        sudo pacman-color "$@"
    fi
}

EDIT: Na verdade, o desenvolvedor fez algo chamado pacwrap, que faz o trabalho melhor.

Ele não usa sudo, a menos que seja necessário, e escolhe pacman ou packer com base nas operações usadas.

    
por 06.07.2010 / 06:17