Skip to content

Utilitário

Juliano Santos edited this page Jan 22, 2019 · 9 revisions

bashsrc (Utilitário)

O utilitário de linha de comando bashsrc fornece opções para consulta/gerenciamento do ecossitema, para visualizar as opções digite:

$ bashsrc -h

ou

$ bashsrc --help

Nota: requer configuração do $BASHSRC_PATH.

Exemplo:

shsrc: ferramenta para documentação e ambiente.
Uso: bashsrc [OPÇÕES]

Argumentos obrigatórios para opções longas também são para opções curtas.

-l, --list                              - Lista os sources disponíveis em '$BASHSRC_PATH'.
-e, --env                               - Exibe o ambiente configurado em '$BASHSRC_PATH'.
-d, --doc <source>[.<function>|<type>]  - Exibe a documentação da biblioteca, função ou tipo.
-h, --help                              - Exibe ajuda e sai.
-c, --check-conflicts                   - Verifica se há conflito de tipos entre bibliotecas em '$BASHSRC_PATH'.
-v, --version                           - Exibe a versão e sai.

Desenvolvido por: Juliano Santos [SHAMAN]
Reportar falhas: <shellscriptx@gmail.com.br>
Wiki: <https://github.com/shellscriptx/bashsrc/wiki>

Além das configurações é possível consultar a documentação presente em uma biblioteca atráves do parâmetro -d, --doc Esse recurso é útil pois permite ao desenvolvedor criar e compartilhar bibliotecas cujo código-fonte é a própria documentação, tal recurso já visto em algumas linguagens como: python, golang entre outras.

Veja as duas formas de consulta:

Geral:

Exibe uma descrição curta de todos os protótipos de declaração de funções, objetos e tipos. (exceto: Metadados).

Para exibir as informaçõs digite:

$ bashsrc --doc <biblioteca>

Nota: a extensão do arquivo deve ser omitida.

Exemplo:

$ bashsrc -d regex
function regex.compile <pattern[str]> -> [bool]
function regex.findall <pattern[str]> <expr[str]> -> [str]|[bool]
function regex.fullmatch <pattern[str]> <expr[str]> <match[map]> -> [bool]
function regex.match <pattern[str]> <expr[str]> <match[map]> -> [bool]
function regex.search <pattern[str]> <expr[str]> <match[map]> -> [bool]
function regex.split <pattern[str]> <expr[str]> -> [str]|[bool]
function regex.groups <pattern[str]> <expr[str]> -> [str]|[bool]
function regex.replace <pattern[str]> <expr[str]> <count[int]> <new[str]> -> [str]|[bool]
function regex.fnreplace <pattern[str]> <expr[str]> <count[int]> <func[function]> <args[str]> ... -> [str]|[bool]
function regex.fnreplacers <pattern[str]> <expr[str]> <count[int]> <func[function]> -> [str]|[bool]
function regex.expand <pattern[str]> <expr[str]> <template[str]> -> [str]|[bool]
function regex.exportnames <pattern[str]> <expr[str]> -> [bool]
map match
type regex_t

Detalhada:

Exibe informações, detalhes e exemplos sobre o objeto especificado.

Para exibir as informações digite:

$ bashsrc --doc <biblioteca>.<objeto>

Nota: a extensão do arquivo deve ser omitida.

Exemplo:

$ bashsrc --doc regex.fnreplace
function regex.fnreplace <pattern[str]> <expr[str]> <count[int]> <func[function]> <args[str]> ... -> [str]|[bool]
    
     Substitui 'N' ocorrências do padrão pelo retorno da função com 'N'args (opcional), passando como
     como argumento posicional '$1' o padrão casado. Se 'count < 0' aplica a substtiuição em todas as
     ocorrências.
    
     == EXEMPLO ==
    
     source regex.sh
    
     dobrar()
     {
         # Retorna o dobro do valor casado.
         echo "$(($1*2))"
     }
    
     expr='valor_a = 10, valor_b = 20, valor_c = 30'
    
     # Valor atual.
     echo "$expr"
     echo ---
    
     # Substitui somente os números contidos na expressão.
     regex.fnreplace '[0-9]+' "$expr" 1 dobrar    # 1ª ocorrência
     regex.fnreplace '[0-9]+' "$expr" 2 dobrar    # 1ª e 2ª ocorrência
     regex.fnreplace '[0-9]+' "$expr" -1 dobrar   # Todas
    
     == SAÍDA ==
    
     valor_a = 10, valor_b = 20, valor_c = 30
     ---
     valor_a = 20, valor_b = 20, valor_c = 30
     valor_a = 20, valor_b = 40, valor_c = 30
     valor_a = 20, valor_b = 40, valor_c = 60