Smart Prompt
Utilitário para criar prompts bash espertos.
##Instalar
Baixe o binário da última versão e coloque-o em uma pasta que esteja no seu $PATH
.
##Usar
Adicione a seguinte linha ao seu ~/.bashrc
para usar o prompt padrão:
export PROMPT_COMMAND='export PS1="$(smartprompt)"'´
Se você for usar um prompt customizado adicione:
export PROMPT_PATTERN="meu prompt customizado"
export PROMPT_COMMAND='export PS1="$(smartprompt --pattern="$PROMPT_PATTERN")"'
##Rodar a partir do código fonte
Este projeto depende do git2go, portanto você deve instalá-la.
Rode go get github.com/fholiveira/smartprompt
para baixar o código e navegue para o diretório $GOPATH/src/github.com/fholiveira/smartprompt
. Neste diretório rode go install
para compilar e instalar os binários em $GOPATH/bin/
. Adicione esta pasta ao seu $PATH
ou copie os binários para uma pasta que esteja no seu $PATH
.
##Rodar os testes
Primeiro, você deve instalar o gorc. Depois, na pasta $GOPATH/src/github.com/fholiveira/smartprompt
, rode o comando gorc
.
##Manual
O prompt padrão gerado pelo smartprompt tem a seguinte aparência:
Esta aparência é definida pelo seguinte pattern:
{GREEN:bold}{user}@{host} {BLUE:bold}{location:vimstyle} {sourcecontrol} {PURPLE:bold}{symbol} {TEXT:reset}
Os valores envoltos em chaves são plugins. Um plugin pode aplicar uma cor ou exibir uma informação. Você pode definir um prompt diferente do padrão usando a opção --pattern="meu prompt customizado"
ao rodar o smartprompt.
###Plugins
{host} Nome do host
{user} Nome do usuário
{dir} Nome do diretório atual
{fqdn} Full qualified domain name
{line:break} Quebra de linha
{shell} Nome do shell
{shell:version} Versão do shell
{shell:release} Release do shell
#####{symbol|<root>
|<common user>
}
Exibe <root>
quando o usuário for root e <common>
quando for um usuário comum. Se os parâmetros não forem especificados exibe "#" para root e "$" para usuário comum:
Usuário root:
{symbol} #
{symbol|>} >
{symbol|>>|->} >>
Usuário comum:
{symbol} $
{symbol|>} $
{symbol|>>|->} ->
#####{virtualenv|<prefix>
|<sufix>
}
Exibe o Python Virtualenv atual; os parâmetros <prefix>
e <sufix>
serão adicionados ao começo e fim do nome do virtualenv. Se o virtualenv for uma pasta oculta, o nome dele será mostrado sem o "." inicial.
{virtualenv|(|)} (env)
{virtualenv|↦ } ↦ env
#####{location|<absolute>
}
Caminho do diretório atual. Por padrão este plugin mantém quaisquer symlinks presentes - para usar o caminho absoluto use o parâmetro opcional <absolute>
:
Caminho
-> com symlink /data/music
-> absoluto /mnt/disk1/2014/Musics
{location:vimstyle} /data/music
{location:vimstyle|absolute} /mnt/disk1/2014/Musics
Caminho
-> com symlink /home/usuario/projetos/smartprompt
-> absoluto /home/usuario/projetos/golang/src/github.com/usuario/smartprompt
{location:vimstyle} ~/projetos/smartprompt
{location:vimstyle|absolute} ~/projetos/golang/src/github.com/usuario/smartprompt
#####{location:vimstyle|<absolute>
}
Caminho até o diretório atual usando a sintax do vim. Por padrão este plugin mantém quaisquer symlinks presentes - para usar o caminho absoluto use o parâmetro opcional <absolute>
:
Caminho
-> com symlink /data/music
-> absoluto /mnt/disk1/2014/Musics
{location:vimstyle} /d/music
{location:vimstyle|absolute} /m/d/2/Musics
Caminho
-> com symlink /home/usuario/projetos/smartprompt
-> absoluto /home/usuario/projetos/golang/src/github.com/usuario/smartprompt
{location:vimstyle} ~/p/smartprompt
{location:vimstyle|absolute} ~/p/g/s/g/u/smartprompt
#####{time|<pattern>
}
Indica a data usando o formato especificado no parâmetro <pattern>
. Usando como exemplo a data '09 de Janeiro de 2014 as 21:07:02'
{time|dd/yy/mm} 09/01/2014
{time|d/m/y} 9/1/14
{time|h:M:s} 09:7:2
{time|hh-MM-ss} 21-07-02
#####{git}
Se o diretório atual for um repo git exibe as informações de acordo com o padrão [T H S M U C], onde:
T: status (pode ser 'merging', 'rebasing' ou vazio)
H: head (geralmente nome da branch atual)
S: quantidade de arquivos staged
M: quantidade de arquivos modificados
U: quantidade de arquivos untracked
C: quantidade de arquivos em conflito
###Cores
São suportadas as cores BLACK, RED, GREEN, YELLOW, BLUE, PURPLE, CYAN, WHITE.
Elas podem ser usadas da seguinte forma:
{COR} Aplica a cor ao texto
{COR:underline} Aplica a cor ao texto e o sublinha
{COR:bold} Aplica a cor ao texto e o coloca em negrito
{COR:background} Aplica a cor ao background
Para voltar o texto para a formatação padrão use o plugin {TEXT:reset}