Jump to content

# Shell package guidelines (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Shell package guidelines. Data da última tradução: 2022-08-03. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Shell de linha de comando

## Instalação

Para usuários alterarem os shells, o shell deve aparecer em `/etc/shells`. A maioria dos pacotes de shell têm que instalar scripts como o abaixo:

    nome_do_shell.install

    post_install() {
        grep -Fqx /bin/nome_do_shell /etc/shells || echo /bin/nome_do_shell >>/etc/shells
        grep -Fqx /usr/bin/nome_do_shell /etc/shells || echo /usr/bin/nome_do_shell >>/etc/shells
    }

    post_upgrade() {
        post_install
    }

    post_remove() {
        sed -i -r '/^(\/usr)?\/bin\/nome_do_shell$/d' etc/shells
    }

## Completações de shell

A maioria dos shells fornece um conjunto integrado de completações para alguns comandos comuns, enquanto também verifica pelo menos um diretório do sistema em busca de funções que podem ser fornecidas por outros pacotes. A tabela a seguir é um resumo de onde os pacotes podem colocar os arquivos de completação e quais arquivos devem ser nomeados.

Shell | Diretório | Arquivo
--- | --- | ---
Bash | `/usr/share/bash-completion/completions` | `nome_do_binário`
fish | `/usr/share/fish/vendor_completions.d` | `nome_do_binário.fish`
Zsh | `/usr/share/zsh/site-functions` | `_nome_do_binário`

Outros shells:

- Elvish fornece algumas completações padrão, mas não tem um diretório de todo o sistema onde as completações podem ser fornecidos ainda[1]. Para pacotes que geram funções de completações de shell para Elvish, uma solução seria empacotá-los `/usr/share/elvish/completions/nome_do_binário.elv` e usar um `post_install()` para imprimir uma dica para os usuários fazerem um link simbólico para o diretório `$XDG_CONFIG_HOME/elvish/lib/`.

Dica Como regra geral, os pacotes não devem ter nem depends nem optdepends com os shells. Só porque eles fornecem completações para eles não implica uma relação de dependência de pacote de forma alguma. A exceção são os pacotes que não fornecem suas próprias completações; as completações não existem no pacote shell padrão, mas elas são fornecidas pelos pacotes de coleção suplementares bash-completion ou zsh-completions. Quando houver arquivos de completações nesses pacotes, adicione-os a `optdepends`.
Category:

- Arch package guidelines (Português)

Shell package guidelines (Português)
Add topic