123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- #!/bin/sh
- # Dont ultrapass '|'
- #
- #--------HEADER---------------------------------------------------------------|
- #AUTOR
- # Jefferson Rocha <lrcjefferson@gmail.com>
- #
- #PROGRAMA
- # Pressao - Controle de Pressão Arterial
- #
- #DESCRIÇÃO
- # Dados de inserção para controle de pressão arterial.
- #
- #LICENÇA
- # MIT - https://notabug.org/jeffersonrocha/Pressao/raw/master/LICENSE
- #
- #CHANGELOG
- # **Versão 1.2 - Jefferson Rocha
- # -Inserido Opção inline de procura por data.
- # -Inserido Opção de ajuda.
- #
- #
- # **Versão 1.3 - Jefferson Rocha
- # -Inserido a opção de 'bloqueio' e 'desbloqueio' do banco de dados com o
- # comando 'chattr'.
- #
- # -Tirado a Var '$HOME' das váriaveis '$dir e $backup' e colocado caminho
- # absoluto, retirando assim possíveis erros futuros.
- #
- # -Substituido algumas váriaveis:
- # 'dir' por: diretorio_principal
- # 'dir_bp' por: banco_de_dados
- # 'backup' por: diretorio_backup
- #-----------------------------------------------------------------------------|
- #--------------CONFIGURACAO--------------#
- # INSIRA OS DADOS e Configurações aqui!
- # Nome COMPLETO
- Nome=""
- # Formato exemplo: 15/12/1985
- Data_de_nascimento=""
- # Exemplo "Hidrocloritiazida - 50mg, Besilapin - 5mg"
- Remedios=""
- # Diretorio do bd
- # Mude se necessário!
- diretorio_principal="/home/slackjeff/press"
- # Banco de dados
- # mude se necessário.
- banco_de_dados="$diretorio_principal/bd.txt"
- # Caminho para Backup
- # Mude se necessário.
- diretorio_backup="/home/slackjeff/bd-pressao-bkp.txt"
- #=========== NÃO MEXER DAQUI PARA BAIXO! ===========#
- #--------------VARS--------------#
- versao="1.2"
- #--------------------------------#
- #--------------FUNCOES--------------#
- _adicionar(){
- # Inserindo dados no banco de dados.
- if [ -e "$banco_de_dados" ] && [ -w "$banco_de_dados" ]; then
- if echo " $Data $Hora $Pressao" >> "$banco_de_dados"; then
- echo "Dados inseridos com sucesso!"
- else
- echo "Houve um erro."
- fi
- else
- echo "Arquivo não existe ou Sem permissão de Escrita..."
- fi
- }
- _template(){
- cat >> "$banco_de_dados" <<EOF
- PACIENTE
- ==============
- Nome: $Nome
- Data de Nascimento: $Data_de_nascimento
- Remedios em Uso: $Remedios
- -----------------------------------------------------------------------
- PRESSÃO ARTERIAL MEDIÇÃO
- ============================
-
- **NOTA
- Fazer medição TODOS os dias as X horas da manhã.
- Medicando com os remédios:
- -----------------------------------------------------------------------
- DATA HORA PRESSÃO
- ======== ========= ===========
- EOF
- }
- _ajuda(){
- cat << EOF
- Pressao - Controle de Pressão Arterial $versao
- Copyright (C) 2018 Jefferson Rocha <lrcjefferson@gmail.com>
- License: MIT - https://notabug.org/jeffersonrocha/Pressao/raw/master/LICENSE
- Banco de dados utilizado é em Texto puro, para os mais familiarizados Plain-Text.
- Este formato é mais limpo, leve e sem frufrus adicionais.
- BUGS: lrcjefferson@gmail.com
- Sintaxe: pressao [OPÇÃO]
- Opções Disponíveis:
- -i, inserir
- Questionatário será perguntado 'Data da medição', 'Hora da medição' e 'Pressão Arterial'
- Exemplo de um padrão exato:
- Qual à Data: 18/05/2015
- Qual à Hora: 15:20
- Qual à Pressão: 12x7
-
- *É importante não deixar nenhum campo nulo, se não o programa fecha.
- No banco de dados será armazenado no formato em linha e caso o usuário peça para 'visualizar'
- será visualizado neste formato:
- DATA HORA PRESSÃO
- ======== ========= ===========
- 18/05/2015 15:20 12x7
- -v, visualizar
- Visualize todo banco de dados, contendo todas as informações como 'Data' 'Hora' e 'Pressão'.
- -p, procurar
- Procure pela 'Data' a informação necessária, exemplo:
- pressao procurar 14/10
- pressao procurar 14
- pressao procurar 14/10/2018
- Será exibido todas a(s) data(s) que coinsidirem.
- -a, ajuda
- Mostra à ajuda completa do programa e sai.
- EOF
- }
- #----------------------------------#
- #--------------TESTES--------------#
- # Se diretorio não existir, crie!
- [ ! -e "$diretorio_principal" ] && { mkdir "$diretorio_principal" ;}
- # Se banco de dados não existir crie!
- [ ! -e "$banco_de_dados" ] && { _template ;}
- # chattr existe?
- [ $(type -P chattr) ] && comando_chattr="on"
- #---------------------------------#
- #--------------Inicio--------------#
- case $1 in
- -i|inserir)
- for dados in "Data" "Hora" "Pressao"; do
- read -p "Qual à ${dados}: " "${dados}"
- # Conferindo se dado está nulo, se está tchau.
- for null in "$Data" "$Hora" "$Pressao"; do
- if [ -z "$null" ]; then
- echo "Dado nulo, saindo."
- exit 1
- else
- break
- fi
- done
- done
- _adicionar # Chamada função para adicionar dados.
- ;;
- -v|visualizar) cat "$banco_de_dados" | less ;;
- -p|procurar)
- shift
- while [ -n "$1" ]; do
- if grep -E "^..$1" "$banco_de_dados" >> /tmp/arq; then
- if [ -e "/tmp/arq" ]; then
- echo -e "\033[31;1mArquivos Encontrados:\033[m"
- cat "/tmp/arq"
- rm "/tmp/arq"
- fi
- else
- echo "Nenhum dado com está data foi encontrado."
- rm "/tmp/arq"
- fi
- shift
- done
- ;;
- backup) cat "$banco_de_dados" >> "$diretorio_backup" ;;
- bloquear)
- # Chattr existe? ok, vamos ver se é root.
- if [ "$comando_chattr" = "on" ]; then
- if [ $(id -u) -eq "0" ]; then
- if chattr +i "$banco_de_dados"; then
- echo -e "$banco_de_dados foi bloqueado com sucesso...\nPara desbloqueio use o parâmetro 'desbloquear' não se esqueça."
- else
- echo "Houve algum problema... não foi possível bloquear $banco_de_dados ..."
- fi
- else
- echo "Necessita de Root para usar este parâmetro."
- exit 1
- fi
- else
- echo "Impossível bloquear, instale o 'chattr' para prosseguir."
- fi
- ;;
- desbloquear)
- # Chattr existe? ok, vamos ver se é root.
- if [ "$comando_chattr" = "on" ]; then
- if [ $(id -u) -eq "0" ]; then
- if chattr -i "$banco_de_dados"; then
- echo -e "$banco_de_dados foi desbloqueado com sucesso..."
- else
- echo "Houve algum problema... não foi possível desbloquear $banco_de_dados ..."
- fi
- else
- echo "Necessita de Root para usar este parâmetro."
- exit 1
- fi
- else
- echo "Impossível desbloquear, instale o 'chattr' para prosseguir."
- fi
- ;;
- -v|versao) echo "Pressao versão $versao" ;;
- *|-a|ajuda) _ajuda ;; # Chamda função _ajuda.
- esac
- #------------------------------------------#
|