Skip to content

Instantly share code, notes, and snippets.

@erickvieira
Last active September 15, 2020 23:49
Show Gist options
  • Save erickvieira/882dbb271577514efa78777846ec6d5d to your computer and use it in GitHub Desktop.
Save erickvieira/882dbb271577514efa78777846ec6d5d to your computer and use it in GitHub Desktop.
CLI utils

CLI utils

Instalação

    1. Baixe o .zip e extraia em ~/.cli_utils (nome de diretório sugerido).
    1. Edite o seu ~/.bashrc (ou equivalente) e adicione o caminho da pasta à variável $PATH do sistema.
export PATH="$PATH:$HOME/.cli_utils"
    1. Torne os arquivos descompactados executáveis. Para isso, é possível rodar chmod +x gendoc, por exemplo, e repetir o processo para cada um dos demais sccripts. Alternativamente, se você se sentir confortável com isso, é possível rodar o comando find ~/.cli_utils/ -type f -exec chmod +x {} \;, para fazer com que todos os scripts sejam executáveis de uma só vez.

Obs.: lembre-se de substituir o caminho do diretório após a palavra-chave find, caso tenha decidido descompactar em uma pasta com nome diferente.

Uso

gendoc

  • Informe o tipo de documento a ser gerado (cpf ou cnpj):
    • $ gendoc cpf deve resultar em um CPF (ex.: 666.332.695-36)
  • Além do parâmetro de tipo, o algoritmo aceita também 2 parâmetros opcionais:
    • $ gendoc -c cpf copia o documento gerado para a área de colagem (é necessário ter o xclip instalado na máquina)
    • $ gendoc -u cpf gera um CPF sem formatação (ex.: 66633269536).

Obs.: os comandos podem ser combinados e também funcionam com CNPJ.

viacep

  • Informe o cep a ser buscado pela API do ViaCEP:
    • $ viacep 74000000 deve retornar um json contendo os dados do CEP informado ou um erro de não encontrado.
  • Além disso, há um parâmetro extra -c, que, tal qual em gendoc, copia o retono do comando para a área de colagem.

millis

  • Este comando não depende de inputs ou parâmetros. Ao ser executado, retorna o tempo atual em milissegundos: 1502007128763.

tfmt

  • Informe um número inteiro em milissegundoos para ser convertido em segundos.
    • $ tfmt 3600 deve retornar 3.60 s.
  • Essa CLI também aceita um parâmetro de unidade de tempo -u, que pode ser h para horas ou min para minutos.

Ex.: $ tfmt -u=min 60000, resulta em 1.00 s.

#!/bin/bash
DOC=""
UNFORMAT=0
CLIPBOARD=0
for i in $@; do
PARAM=`echo "$i" | tr '[:upper:]' '[:lower:]'`
if [[ "$PARAM" == "--unformat" ]]; then
UNFORMAT=1
elif [[ "$PARAM" == "-u" ]]; then
UNFORMAT=1
elif [[ "$PARAM" == "--clipboard" ]]; then
CLIPBOARD=1
elif [[ "$PARAM" == "-c" ]]; then
CLIPBOARD=1
else
DOC=$PARAM
fi
done
if [ -z $DOC ]; then
echo "[!] Parâmetro inválido"
else
RESPONSE="$(curl -s "https://document-generator.ematos.now.sh/$DOC")"
if [ $UNFORMAT -eq 1 ]; then
RESPONSE=`echo "$RESPONSE" | sed 's/[^0-9]*//g'`
fi
if [ $CLIPBOARD -eq 1 ]; then
echo $RESPONSE | xclip -sel clip
fi
echo $RESPONSE
fi
#!/bin/bash
echo $(($(date +%s%N)/1000000))
#!/bin/bash
MILLIS=`echo "$1" | sed 's/^[-u=]*//g'`
UNITY="s"
PRECISION=8
IFS=$' '
EXPECTED_UNITYS=("s min h")
unset IFS
if [[ " ${EXPECTED_UNITYS[@]} " =~ " ${MILLIS} " ]]; then
UNITY="$MILLIS"
MILLIS="$2"
fi
if [ $MILLIS -eq 0 -o -z $UNITY ]; then
echo "[!] Parâmetro inválido"
else
RESULT=$(echo "scale=$PRECISION; $MILLIS/1000" | bc)
if [[ $UNITY == "min" ]]; then
RESULT=$(echo "scale=$PRECISION; $MILLIS/1000/60" | bc)
elif [[ $UNITY == "h" ]]; then
RESULT=$(echo "scale=$PRECISION; $MILLIS/1000/3600" | bc)
fi
printf "%0.2f %s\n" $RESULT $UNITY
fi
#!/bin/bash
CEP=""
CLIPBOARD=0
for i in $@; do
PARAM=`echo "$i" | tr '[:upper:]' '[:lower:]'`
if [[ "$PARAM" == "--clipboard" ]]; then
CLIPBOARD=1
elif [[ "$PARAM" == "-c" ]]; then
CLIPBOARD=1
else
CEP=$PARAM
fi
done
if [ -z $CEP ]; then
echo "[!] Parâmetro inválido"
else
RESPONSE="$(curl -s "https://viacep.com.br/ws/$CEP/json/")"
if [ $CLIPBOARD -eq 1 ]; then
echo $RESPONSE | xclip -sel clip
fi
echo $RESPONSE
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment