Como minha ferramenta de linha de comando do tipo gerenciador de pacotes deve ser impressa em stdout / stderr?

0

Estou trabalhando em um projeto que usará qualquer gerenciador de pacotes disponível para provisionar um sistema operacional recém-instalado. Alguns exemplos de gerenciadores de pacotes podem ser apt para o Ubuntu, brew e brew cask para o OSX ou pacman para o Arch.

Gostaria de exibir mensagens coloridas para stdout ou stderr dependendo do que acontece. Estou procurando algumas diretrizes sobre o tipo de cor e conteúdo que devo usar e onde devo enviar a saída.

Pensando um pouco sobre isso, eu pensei:

  • as mensagens de status podem estar em azul ou sem cor e ser impressas somente para stdout se o sinalizador -v ou --verbose for fornecido.

    Ex:

    -* installing commandline-tools
    
  • Mensagens de sucesso em verde e impressas por padrão para stdout (ou talvez se o sinalizador detalhado for fornecido, não tenho certeza)

    Ex:

    -* installed commandline-tools
    
  • Mensagens de falha em vermelho e impressas por padrão para stderr

    Ex:

    -* failed to install commandline-tools
    

Pensamentos e opiniões são bem-vindos, mas eu também apreciaria algumas fontes / diretrizes definitivas

    
por mbigras 07.09.2016 / 20:56

1 resposta

1

Tente este snippet, você poderá colorir o que quiser:

for i in {0..7};
do
    tput setaf $i // color next echo command
    echo "tput setaf $i"
    tput sgr0     // reset normal colors
done

Eu recomendo que não use código de escape ANSI bruto.

    
por 07.09.2016 / 21:10