From 5aeb2b21dbf48789b1d05389908ee9346dcb0a6a Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Sun, 22 Mar 2020 19:21:21 -0300 Subject: [PATCH 01/28] Ignore arquivos .eps e .bin --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index fb53cd7..a76784c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ *.backup *.bbl *.blg +*.eps +*.bin From 640dd15d4d19aaffa6ed08db1c68f218081f4faf Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Sun, 22 Mar 2020 19:24:49 -0300 Subject: [PATCH 02/28] Scripts de mensagem de ajuda e erro padronizados #2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O script mensagemAjuda.sh e o script mensagemErro.sh padronizam as mensagens de ajuda e erro de scripts do shell. São originais da biblioteca Shellinclude, e suas versões atualizadas podem ser encontradas em https://github.com/Dirack/Shellinclude --- mensagemAjuda.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ mensagemErro.sh | 34 ++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100755 mensagemAjuda.sh create mode 100755 mensagemErro.sh diff --git a/mensagemAjuda.sh b/mensagemAjuda.sh new file mode 100755 index 0000000..6b28027 --- /dev/null +++ b/mensagemAjuda.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# mensagemAjuda.sh (Shell Script) +# +# Objetivo: Função para formatar a mensagem de ajuda dos programas +# da biblioteca shell script. +# +# Para uma descrição mais detalhada desta biblioteca, consulte: +# https://github.com/Dirack/Shellinclude/wiki/mensagemAjuda.sh +# +# Site: http://www.dirackslouge.online +# +# Versão 1.1 +# +# Programador: Rodolfo A. C. Neves 18/05/2019 +# +# email (manutenção): rodolfo_profissional@hotmail.com +# +# Licença: Software de uso livre e código aberto. + +formatarTabelaParametros(){ + + + TABELA_PARAMETROS_FORMATADA=$(echo "$1" | sed 's/^/\\t\\033[00;01m/' | sed 's/::/ \\033[m/' ) + + echo "$TABELA_PARAMETROS_FORMATADA" + +} + +exibirMensagemAjudaProgramaFormatada(){ + + NOME_PROGRAMA="$1" + DESCRICAO="$2" + TABELA_PARAMETROS="$3" + EXEMPLO_DE_USO="$4" + + #set -xv + + LISTA_OPCOES=$(echo "$TABELA_PARAMETROS" | cut -d" " -f1 | sed 's/^/ /' | sed 's/$/ /' | paste -s -d"|") + + #exit 0 + + TABELA_PARAMETROS=$(formatarTabelaParametros "$TABELA_PARAMETROS") + +MENSAGEM_AJUDA="\033[00;01mNOME\033[m +\t$NOME_PROGRAMA [$LISTA_OPCOES] +\033[00;01mDESCRIÇÃO\033[m +\t$DESCRICAO +\033[00;01mPARÂMETROS\033[m +$TABELA_PARAMETROS +\033[00;01mEXEMPLO DE USO\033[m +\t$EXEMPLO_DE_USO +" + + echo -e "$MENSAGEM_AJUDA" + + return 0 +} + + + + diff --git a/mensagemErro.sh b/mensagemErro.sh new file mode 100755 index 0000000..4a220b3 --- /dev/null +++ b/mensagemErro.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# mensagemErro.sh (Shell Script) +# +# Objetivo: Função para formatar a mensagem de erro dos programas +# da biblioteca shell script. +# +# Para uma descrição mais detalhada desta biblioteca, consulte: +# https://github.com/Dirack/Shellinclude/wiki/mensagemErro.sh +# +# Site: http://www.dirackslouge.online +# +# Versão 1.1 +# +# Programador: Rodolfo A. C. Neves 19/05/2019 +# +# email (manutenção): rodolfo_profissional@hotmail.com +# +# Licença: Software de uso livre e código aberto. + +exibirMensagemErroProgramaFormatada(){ + + NOME_PROGRAMA="$1" + NUMERO_ERRO="$2" + MENSAGEM_ERRO="$3" + + echo -e "\033[31m$NOME_PROGRAMA: ERRO($NUMERO_ERRO): $MENSAGEM_ERRO\033[m" + + exit "$NUMERO_ERRO" +} + + + + From e44662f94ffe4cb93e8034e54eba9892a9f0efdc Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Sun, 22 Mar 2020 19:39:27 -0300 Subject: [PATCH 03/28] =?UTF-8?q?Esbo=C3=A7o=20da=20interface=20do=20progr?= =?UTF-8?q?ama=20geomodel=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Interface do programa geomodel esboçada, possui menu de opções, mensagens de erro e mensagens de ajuda. --- geomodel | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100755 geomodel diff --git a/geomodel b/geomodel new file mode 100755 index 0000000..7bc0754 --- /dev/null +++ b/geomodel @@ -0,0 +1,125 @@ +#!/bin/bash +# +# geomodel (Shell Script) +# +# Objetivo: Gerar modelo da subsuperfície para o programa triseis do SU. +# +# Site: https://dirack.github.io +# +# Versão 1.0 +# +# Programador: Rodolfo A C Neves (Dirack) 22/03/2020 +# +# Email: rodolfo_profissional@hotmail.com +# +# Licença: GPL-3.0 . + +# Scripts de padronização de mensagens de ajuda e erro +source mensagemAjuda.sh +source mensagemErro.sh + +## Verificar se o usuário forneceu $1 +if [ -z "$1" ] +then + MENSAGEMERRO="Usuário não ofereceu parâmetros ao programa!\nDigite $(basename $0) -h para obter ajuda!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "1" "$MENSAGEMERRO" +fi + +# Versão deste programa +VERSAO="Versão 1.0" + +## Variáveis que armazenam mensagem de ajuda do programa +NOME_PROGRAMA="$(basename $0)" +DESCRICAO=" Gerar modelo da subsuperfície para o programa triseis do SU." +PARAMETROS="-h --help::Exibe essa tela de ajuda e sai +-v --version::Exibe a versão do programa e sai +-m --model::Gerar o modelo em arquivo binário +-i --image::Gerar imagem eps de modelo gerado com -m" +EXEMPLO_DE_USO="~$ $(basename $0) -m +\t~$ $(basename $0) -i +" + +case "$1" in + -h | --help) ## Exibe a ajuda + clear + exibirMensagemAjudaProgramaFormatada "$NOME_PROGRAMA" "$DESCRICAO" "$PARAMETROS" "$EXEMPLO_DE_USO" + exit 0 + ;; + + -v | --version) ## Exibe a versão do programa + echo $VERSAO + exit 0 + ;; + + -m | --model) ## Gerar modelo com trimodel + + ## Caso o usuário não fornecer um nome para o arquivo, gere um aleatório + [ -z "$2" ] && { + echo "Usuário não forneceu nome do arquivo, criando um nome..." + MODEL_FILENAME=$(mktemp model-XXXX.bin) + echo "Arquivo: $MODEL_FILENAME" + } + + trimodel xmin=0 zmin=0 xmax=12.0 zmax=3.5 \ + 1 xedge=0,2,4,6,8,10,12 \ + zedge=0,0,0,0,0,0,0 \ + sedge=0,0,0,0,0,0,0 \ + 2 xedge=0,12 \ + zedge=0.3,0.25 \ + sedge=0,0 \ + 3 xedge=0,12 \ + zedge=0.7,0.45 \ + sedge=0,0 \ + 4 xedge=0,2,4,6,8,10,12 \ + zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 \ + sedge=0,0,0,0,0,0,0 \ + 5 xedge=0,2,4,6,8,10,12 \ + zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 \ + sedge=0,0,0,0,0,0,0 \ + 6 xedge=0,2,4,6,8,10,12 \ + zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 \ + sedge=0,0,0,0,0,0,0 \ + 7 xedge=0,2,4,6,8,10,12 \ + zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 \ + sedge=0,0,0,0,0,0,0 \ + 8 xedge=0,2,4,6,8,10,12 \ + zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 \ + sedge=0,0,0,0,0,0,0 \ + sfill=0,0.1,0,0,0.39,0,0 \ + sfill=0,0.4,0,0,0.31,0,0 \ + sfill=0,0.9,0,0,0.28,0,0 \ + sfill=0,1.5,0,0,0.25,0,0 \ + sfill=0,2.0,0,0,0.55,0,0 \ + sfill=0,2.4,0,0,0.44,0,0 \ + sfill=0,3.0,0,0,0.16,0,0 \ + kedge=1,2,3,4,5,6,7,8 \ + >"${MODEL_FILENAME}" + ;; + + -i | --image) ## Gerar imagem EPS do modelo + + [ -z "$2" ] && { + MENSAGEMERRO="Usuário não forneceu o modelo para gerar a imagem!\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + + } + + MODEL_FILENAME="$2" + + # Verificar se o arquivo está na pasta + [ -f "$MODEL_FILENAME" ] || { + MENSAGEMERRO="Arquivo $MODEL_FILENAME não encontrado!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + spsplot < "$MODEL_FILENAME" > "${MODEL_FILENAME%%.*}.eps" \ + gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 \ + title="Modelo de camadas curvas" titlesize=20 labelz="Profundidade (km)" \ + labelx="Distancia (km)" labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 + ;; + + *) + MENSAGEMERRO="Opção $1 Desconhecida!\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "4" "$MENSAGEMERRO" + ;; +esac From 82cf310625f85b9feda74b30e5216b6e633ac27e Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Sun, 22 Mar 2020 21:13:33 -0300 Subject: [PATCH 04/28] =?UTF-8?q?O=20programa=20geomodel=20l=C3=AA=20inter?= =?UTF-8?q?faces=20de=20arquivo=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O programa geomodel lê de um arquivo de interfaces no formato do trimodel. Um exemplo deste arquivo é 'modelo.interface'. As linhas iniciadas com '#' no arquivo de interfaces serão ignoradas pelo programa geomodel --- geomodel | 63 +++++++++++++++--------------------------------- modelo.interface | 35 +++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 43 deletions(-) create mode 100644 modelo.interface diff --git a/geomodel b/geomodel index 7bc0754..70e9ea3 100755 --- a/geomodel +++ b/geomodel @@ -33,10 +33,10 @@ NOME_PROGRAMA="$(basename $0)" DESCRICAO=" Gerar modelo da subsuperfície para o programa triseis do SU." PARAMETROS="-h --help::Exibe essa tela de ajuda e sai -v --version::Exibe a versão do programa e sai --m --model::Gerar o modelo em arquivo binário +-m --model::Gerar o modelo de interfaces no fomato do trimodel -i --image::Gerar imagem eps de modelo gerado com -m" -EXEMPLO_DE_USO="~$ $(basename $0) -m -\t~$ $(basename $0) -i +EXEMPLO_DE_USO="~$ $(basename $0) -m +\t~$ $(basename $0) -i " case "$1" in @@ -54,46 +54,23 @@ case "$1" in -m | --model) ## Gerar modelo com trimodel ## Caso o usuário não fornecer um nome para o arquivo, gere um aleatório - [ -z "$2" ] && { - echo "Usuário não forneceu nome do arquivo, criando um nome..." - MODEL_FILENAME=$(mktemp model-XXXX.bin) - echo "Arquivo: $MODEL_FILENAME" - } - - trimodel xmin=0 zmin=0 xmax=12.0 zmax=3.5 \ - 1 xedge=0,2,4,6,8,10,12 \ - zedge=0,0,0,0,0,0,0 \ - sedge=0,0,0,0,0,0,0 \ - 2 xedge=0,12 \ - zedge=0.3,0.25 \ - sedge=0,0 \ - 3 xedge=0,12 \ - zedge=0.7,0.45 \ - sedge=0,0 \ - 4 xedge=0,2,4,6,8,10,12 \ - zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 \ - sedge=0,0,0,0,0,0,0 \ - 5 xedge=0,2,4,6,8,10,12 \ - zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 \ - sedge=0,0,0,0,0,0,0 \ - 6 xedge=0,2,4,6,8,10,12 \ - zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 \ - sedge=0,0,0,0,0,0,0 \ - 7 xedge=0,2,4,6,8,10,12 \ - zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 \ - sedge=0,0,0,0,0,0,0 \ - 8 xedge=0,2,4,6,8,10,12 \ - zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 \ - sedge=0,0,0,0,0,0,0 \ - sfill=0,0.1,0,0,0.39,0,0 \ - sfill=0,0.4,0,0,0.31,0,0 \ - sfill=0,0.9,0,0,0.28,0,0 \ - sfill=0,1.5,0,0,0.25,0,0 \ - sfill=0,2.0,0,0,0.55,0,0 \ - sfill=0,2.4,0,0,0.44,0,0 \ - sfill=0,3.0,0,0,0.16,0,0 \ - kedge=1,2,3,4,5,6,7,8 \ - >"${MODEL_FILENAME}" + [ -z "$2" -o -z "$3" ] && { + MENSAGEMERRO="Usuário não forneceu nomes do arquivos do modelo e/ou das interfaces\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + } + + MODEL_FILENAME="$2" + INTERFACES_FILENAME="$3" + + + # Verificar se o arquivo de interfaces está na pasta + [ -f "$INTERFACES_FILENAME" ] || { + MENSAGEMERRO="Arquivo $INTERFACES_FILENAME não encontrado!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + INTERFACES=$(sed -n '/^#/!p' $INTERFACES_FILENAME) + trimodel $INTERFACES > "${MODEL_FILENAME}" ;; -i | --image) ## Gerar imagem EPS do modelo diff --git a/modelo.interface b/modelo.interface new file mode 100644 index 0000000..ad25e9d --- /dev/null +++ b/modelo.interface @@ -0,0 +1,35 @@ +# Arquivo de interfaces para o programa geomodel +# As linhas iniciadas com '#' serão ignoradas! +xmin=0 zmin=0 xmax=12.0 zmax=3.5 + 1 xedge=0,2,4,6,8,10,12 + zedge=0,0,0,0,0,0,0 + sedge=0,0,0,0,0,0,0 + 2 xedge=0,12 + zedge=0.3,0.25 + sedge=0,0 + 3 xedge=0,12 + zedge=0.7,0.45 + sedge=0,0 + 4 xedge=0,2,4,6,8,10,12 + zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 + sedge=0,0,0,0,0,0,0 + 5 xedge=0,2,4,6,8,10,12 + zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 + sedge=0,0,0,0,0,0,0 + 6 xedge=0,2,4,6,8,10,12 + zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 + sedge=0,0,0,0,0,0,0 + 7 xedge=0,2,4,6,8,10,12 + zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 + sedge=0,0,0,0,0,0,0 + 8 xedge=0,2,4,6,8,10,12 + zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 + sedge=0,0,0,0,0,0,0 + sfill=0,0.1,0,0,0.39,0,0 + sfill=0,0.4,0,0,0.31,0,0 + sfill=0,0.9,0,0,0.28,0,0 + sfill=0,1.5,0,0,0.25,0,0 + sfill=0,2.0,0,0,0.55,0,0 + sfill=0,2.4,0,0,0.44,0,0 + sfill=0,3.0,0,0,0.16,0,0 + kedge=1,2,3,4,5,6,7,8 From a48bd1866d057f7fb8307507b4df48f92bb62dbf Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Sun, 22 Mar 2020 22:36:33 -0300 Subject: [PATCH 05/28] =?UTF-8?q?Troca=20extens=C3=A3o=20do=20arquivo=20de?= =?UTF-8?q?=20interfaces=20para=20.itf=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O arquivo de interfaces agora possui a extensão '.itf' e marcações '' e '' para indicar as seções dos parâmetros dos programas trimodel e spsplot utilizados para gerar e plotar o modelo --- modelo.interface => modelo.itf | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) rename modelo.interface => modelo.itf (67%) diff --git a/modelo.interface b/modelo.itf similarity index 67% rename from modelo.interface rename to modelo.itf index ad25e9d..4991a3f 100644 --- a/modelo.interface +++ b/modelo.itf @@ -1,5 +1,19 @@ # Arquivo de interfaces para o programa geomodel # As linhas iniciadas com '#' serão ignoradas! +# As linhas marcadas '< >' representam entradas de +# parâmetros dos programas + +# Parâmetros do spsplot para gerar uma imagem eps do modelo + + gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 + titlesize=20 + labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 + title="Modelo de camadas curvas" + labelz="Profundidade (km)" labelx="Distancia (km)" + + +# Parâmetros do programa trimodel + xmin=0 zmin=0 xmax=12.0 zmax=3.5 1 xedge=0,2,4,6,8,10,12 zedge=0,0,0,0,0,0,0 @@ -32,4 +46,5 @@ xmin=0 zmin=0 xmax=12.0 zmax=3.5 sfill=0,2.0,0,0,0.55,0,0 sfill=0,2.4,0,0,0.44,0,0 sfill=0,3.0,0,0,0.16,0,0 - kedge=1,2,3,4,5,6,7,8 + kedge=1,2,3,4,5,6,7,8 + From 012105c2259d3ee3c1d9ad272fd3e4657c40c7c5 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Sun, 22 Mar 2020 22:38:59 -0300 Subject: [PATCH 06/28] Adapta geomodel para ler .itf Resolve #2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adapta o programa geomodel para a leitura dos parâmetros do modelo a partir de arquivo '.itf' --- geomodel | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/geomodel b/geomodel index 70e9ea3..ce1a35d 100755 --- a/geomodel +++ b/geomodel @@ -30,13 +30,13 @@ VERSAO="Versão 1.0" ## Variáveis que armazenam mensagem de ajuda do programa NOME_PROGRAMA="$(basename $0)" -DESCRICAO=" Gerar modelo da subsuperfície para o programa triseis do SU." +DESCRICAO=" Gerar modelo da subsuperfície para o programa triseis do SU.\n\t Lê as interfaces de arquivo .itf gerado pelo programa geobuilder" PARAMETROS="-h --help::Exibe essa tela de ajuda e sai -v --version::Exibe a versão do programa e sai -m --model::Gerar o modelo de interfaces no fomato do trimodel -i --image::Gerar imagem eps de modelo gerado com -m" -EXEMPLO_DE_USO="~$ $(basename $0) -m -\t~$ $(basename $0) -i +EXEMPLO_DE_USO="~$ $(basename $0) -m +\t~$ $(basename $0) -i " case "$1" in @@ -53,7 +53,7 @@ case "$1" in -m | --model) ## Gerar modelo com trimodel - ## Caso o usuário não fornecer um nome para o arquivo, gere um aleatório + ## Verificar se o usuário forneceu os arquivos [ -z "$2" -o -z "$3" ] && { MENSAGEMERRO="Usuário não forneceu nomes do arquivos do modelo e/ou das interfaces\nDigite $(basename $0) -h para obter ajuda" exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" @@ -69,19 +69,20 @@ case "$1" in exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" } - INTERFACES=$(sed -n '/^#/!p' $INTERFACES_FILENAME) + INTERFACES=$(sed -n '//,/<\/tm>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/tm>/d') trimodel $INTERFACES > "${MODEL_FILENAME}" ;; -i | --image) ## Gerar imagem EPS do modelo - [ -z "$2" ] && { - MENSAGEMERRO="Usuário não forneceu o modelo para gerar a imagem!\nDigite $(basename $0) -h para obter ajuda" - exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" - + ## Verificar se o usuário forneceu os arquivos + [ -z "$2" -o -z "$3" ] && { + MENSAGEMERRO="Usuário não forneceu nomes do arquivos do modelo e/ou das interfaces\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" } MODEL_FILENAME="$2" + INTERFACES_FILENAME="$3" # Verificar se o arquivo está na pasta [ -f "$MODEL_FILENAME" ] || { @@ -89,10 +90,16 @@ case "$1" in exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" } + # Verificar se o arquivo de interfaces está na pasta + [ -f "$INTERFACES_FILENAME" ] || { + MENSAGEMERRO="Arquivo $INTERFACES_FILENAME não encontrado!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + IMG_PARAMETERS=$(sed -n '//,/<\/sp>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/sp>/d') + spsplot < "$MODEL_FILENAME" > "${MODEL_FILENAME%%.*}.eps" \ - gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 \ - title="Modelo de camadas curvas" titlesize=20 labelz="Profundidade (km)" \ - labelx="Distancia (km)" labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 + $IMG_PARAMETERS ;; *) From 5178fbe08bcb43f926fcc36e3e6498ee548a4b02 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 00:13:53 -0300 Subject: [PATCH 07/28] =?UTF-8?q?Esbo=C3=A7o=20do=20programa=20que=20gera?= =?UTF-8?q?=20arquivo=20de=20interfaces=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O programa interfaceBuilder constrói o arquivo de interfaces com extensão '.itf' para ser lido pelo programa geomodel. Este permite adicionar, listar e remover as interfaces do arquivo. --- interfaceBuilder | 146 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100755 interfaceBuilder diff --git a/interfaceBuilder b/interfaceBuilder new file mode 100755 index 0000000..c5fcda5 --- /dev/null +++ b/interfaceBuilder @@ -0,0 +1,146 @@ +#!/bin/bash +# +# interfaceBuilder (Shell Script) +# +# Objetivo: Gerar interfaces dos modelos em subsuperfície +# para o programa geomodel. +# +# Site: https://dirack.github.io +# +# Versão 1.0 +# +# Programador: Rodolfo A C Neves (Dirack) 22/03/2020 +# +# Email: rodolfo_profissional@hotmail.com +# +# Licença: GPL-3.0 . + +# Scripts de padronização de mensagens de ajuda e erro +source mensagemAjuda.sh +source mensagemErro.sh + +## Verificar se o usuário forneceu $1 +if [ -z "$1" ] +then + MENSAGEMERRO="Usuário não ofereceu parâmetros ao programa!\nDigite $(basename $0) -h para obter ajuda!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "1" "$MENSAGEMERRO" +fi + +# Versão deste programa +VERSAO="Versão 1.0" + +## Variáveis que armazenam mensagem de ajuda do programa +NOME_PROGRAMA="$(basename $0)" +DESCRICAO=" Gerar interfaces do modelo da subsuperfície para o programa geomodel.\n\t As interfaces são geradas em um arquivo com extensão '.itf'" +PARAMETROS="-h --help::Exibe essa tela de ajuda e sai +-v --version::Exibe a versão do programa e sai +-a --add::Adicionar interface +-s --see::Ver interfaces geradas +-r --remove::Remover última interface" +EXEMPLO_DE_USO="~$ $(basename $0) -a x=x1,x2,x3...xn y=y1,y2,y3...yn +\t~$ $(basename $0) -s +\t~$ $(basename $0) -r +" + +case "$1" in + -h | --help) ## Exibe a ajuda + clear + exibirMensagemAjudaProgramaFormatada "$NOME_PROGRAMA" "$DESCRICAO" "$PARAMETROS" "$EXEMPLO_DE_USO" + exit 0 + ;; + + -v | --version) ## Exibe a versão do programa + echo $VERSAO + exit 0 + ;; + + -a | --add) ## Adicionar interface à pilha + + ## Verificar se o usuário forneceu os arquivos + [ -z "$2" ] && { + MENSAGEMERRO="Usuário não forneceu arquivo das interfaces\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + } + + INTERFACES_FILENAME="$2" + + # Verificar se o arquivo de interfaces está na pasta + [ -f "$INTERFACES_FILENAME" ] || { + MENSAGEMERRO="Arquivo $INTERFACES_FILENAME não encontrado!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + [ -z "$3" -o -z "$4" ] && { + MENSAGEMERRO="Vetores de pontos x e y sobre a interface não foram passados ao programa\nDigite $(bsename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + + } + + echo "$3" + echo "$4" + INTERFACES=$(sed -n '//,/<\/tm>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/tm>/d') + ;; + + -s | --see) ## Ver todas as interfaces + + ## Verificar se o usuário forneceu os arquivos + [ -z "$2" ] && { + MENSAGEMERRO="Usuário não forneceu nome do arquivo de interfaces\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + } + + INTERFACES_FILENAME="$2" + + # Verificar se o arquivo de interfaces está na pasta + [ -f "$INTERFACES_FILENAME" ] || { + MENSAGEMERRO="Arquivo $INTERFACES_FILENAME não encontrado!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + NUM_INTERFACES=$(sed -n '/kedge=/p' $INTERFACES_FILENAME | rev | cut -d"," -f1) + HEADER="Arquivo: $INTERFACES_FILENAME Número de interfaces: $NUM_INTERFACES" + + SPSPLOT=$(sed -n '//,/<\/sp>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/sp>/d' | sed 's/\t//g' | tr "\n" " ") + + INTERFACES=$(sed -n '//,/<\/tm>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/tm>/d;/sedge/d') + echo -e "$HEADER" + echo -e "Interfaces do programa trimodel:\n\t$INTERFACES" + echo -e "Parâmetros do programa spsplot:\n\t$SPSPLOT" + ;; + + -r | --remove) ## Remover a última interface da pilha + + ## Verificar se o usuário forneceu os arquivos + [ -z "$2" ] && { + MENSAGEMERRO="Usuário não forneceu nome do arquivo de interfaces\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + } + + INTERFACES_FILENAME="$2" + + # Verificar se o arquivo de interfaces está na pasta + [ -f "$INTERFACES_FILENAME" ] || { + MENSAGEMERRO="Arquivo $INTERFACES_FILENAME não encontrado!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + # Apaga as linhas com a última interface + LINHA_IN=$(grep -n "[0-9] xedge" "$INTERFACES_FILENAME" | tac | head -1 | cut -d":" -f1) + LINHA_OUT=$((LINHA_IN+3)) + sed -i "${LINHA_IN},${LINHA_OUT}d" "$INTERFACES_FILENAME" + + # Apaga o última camada + LINHA=$(grep -n "sfill=" "$INTERFACES_FILENAME" | tac | head -1 | cut -d":" -f1) + sed -i "${LINHAd}" "$INTERFACES_FILENAME" + + # Apaga a referência a última interface em kedge + KEDGE=$(sed -n '/kedge=/p' "$INTERFACES_FILENAME" | rev | cut -d',' -f2- | rev) + sed -i "s/kedge=.*$/${KEDGE}/" "$INTERFACES_FILENAME" + + ;; + + *) + MENSAGEMERRO="Opção $1 Desconhecida!\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "4" "$MENSAGEMERRO" + ;; +esac From f17caf60a35233967bb4e368af20a2ff43ea05b0 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 15:19:53 -0300 Subject: [PATCH 08/28] =?UTF-8?q?Op=C3=A7=C3=A3o=20para=20adicionar=20inte?= =?UTF-8?q?rfaces=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A opção '-a' do programa interfaceBuilder serve para adicionar interfaces a um arquivo .itf no formato lido pelo trimodel. O arquivo de interfaces deve existir previamente. O programa cria um arquivo temporário a partir do arquivo pré existente e adiciona a nova interface seguindo o formato adequado. Por fim substitui o arquivo antigo pela nova versão criada, com uma interface a mais adicionada a pilha de interfaces. --- interfaceBuilder | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/interfaceBuilder b/interfaceBuilder index c5fcda5..7e655c1 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -37,7 +37,7 @@ PARAMETROS="-h --help::Exibe essa tela de ajuda e sai -a --add::Adicionar interface -s --see::Ver interfaces geradas -r --remove::Remover última interface" -EXEMPLO_DE_USO="~$ $(basename $0) -a x=x1,x2,x3...xn y=y1,y2,y3...yn +EXEMPLO_DE_USO="~$ $(basename $0) -a x=x1,x2,x3...xn y=y1,y2,y3...yn sfill=p1,s1 \t~$ $(basename $0) -s \t~$ $(basename $0) -r " @@ -76,9 +76,37 @@ case "$1" in } - echo "$3" - echo "$4" - INTERFACES=$(sed -n '//,/<\/tm>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/tm>/d') + [ -z "$5" ] && { + MENSAGEMERRO="Parâmetro sfill não foi passado ao programa\nDigite $(bsename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + + } + + TMP=$(mktemp /tmp/interfaces_tmp-XXXX.itf) + XEDGE="$3" + ZEDGE="$4" + SFILL_PONTO=$(echo "$5" | cut -d"=" -f2 | cut -d"," -f1) + SFILL_SLOOTH=$(echo "$5" | cut -d"=" -f2 | cut -d"," -f2) + KEDGE=$(grep -n "kedge=" "$INTERFACES_FILENAME" | rev | cut -d"," -f1) + NUM_PONTOS=$(echo "$XEDGE" | cut -d"=" -f2 | tr "," "\n" | wc -l) + SEDGE="sedge=0" + for i in $(seq $((NUM_PONTOS-1))) + do + SEDGE="${SEDGE},0" + done + LAST_INTERFACE=$(grep -n "$KEDGE xedge" "$INTERFACES_FILENAME" | cut -d":" -f1) + LINHA=$((LAST_INTERFACE+2)) + sed -n "1,${LINHA}p" "$INTERFACES_FILENAME" > "$TMP" + echo "$((KEDGE+1)) xedge=${XEDGE##*=}" >> "$TMP" + echo "zedge=${ZEDGE##*=}" >> "$TMP" + echo "$SEDGE" >> "$TMP" + sed -n "/sfill=/p" "$INTERFACES_FILENAME" >> "$TMP" + echo "sfill=0,$SFILL_PONTO,0,0,$SFILL_SLOOTH,0,0" >> $TMP + KEDGE=$(sed -n '/kedge=/p' "$INTERFACES_FILENAME") + KEDGE=$(echo "$KEDGE" | sed "s/^.*kedge=.*$/$KEDGE,$((KEDGE+1))/") + echo "$KEDGE" >> "$TMP" + sed -n '/<\/tm>/,$p' "$INTERFACES_FILENAME" >> "$TMP" + mv "$TMP" "$INTERFACES_FILENAME" ;; -s | --see) ## Ver todas as interfaces From 3993527d2d55faa58a9791a32100a3789550b8e8 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 15:33:38 -0300 Subject: [PATCH 09/28] =?UTF-8?q?Corrige=20formata=C3=A7=C3=A3o=20de=20mod?= =?UTF-8?q?elo.itf=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modelo.itf | 74 +++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/modelo.itf b/modelo.itf index 4991a3f..eca6ce6 100644 --- a/modelo.itf +++ b/modelo.itf @@ -5,46 +5,46 @@ # Parâmetros do spsplot para gerar uma imagem eps do modelo - gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 - titlesize=20 - labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 - title="Modelo de camadas curvas" - labelz="Profundidade (km)" labelx="Distancia (km)" +gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 +titlesize=20 +labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 +title="Modelo de camadas curvas" +labelz="Profundidade (km)" labelx="Distancia (km)" # Parâmetros do programa trimodel xmin=0 zmin=0 xmax=12.0 zmax=3.5 - 1 xedge=0,2,4,6,8,10,12 - zedge=0,0,0,0,0,0,0 - sedge=0,0,0,0,0,0,0 - 2 xedge=0,12 - zedge=0.3,0.25 - sedge=0,0 - 3 xedge=0,12 - zedge=0.7,0.45 - sedge=0,0 - 4 xedge=0,2,4,6,8,10,12 - zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 - sedge=0,0,0,0,0,0,0 - 5 xedge=0,2,4,6,8,10,12 - zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 - sedge=0,0,0,0,0,0,0 - 6 xedge=0,2,4,6,8,10,12 - zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 - sedge=0,0,0,0,0,0,0 - 7 xedge=0,2,4,6,8,10,12 - zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 - sedge=0,0,0,0,0,0,0 - 8 xedge=0,2,4,6,8,10,12 - zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 - sedge=0,0,0,0,0,0,0 - sfill=0,0.1,0,0,0.39,0,0 - sfill=0,0.4,0,0,0.31,0,0 - sfill=0,0.9,0,0,0.28,0,0 - sfill=0,1.5,0,0,0.25,0,0 - sfill=0,2.0,0,0,0.55,0,0 - sfill=0,2.4,0,0,0.44,0,0 - sfill=0,3.0,0,0,0.16,0,0 - kedge=1,2,3,4,5,6,7,8 +1 xedge=0,2,4,6,8,10,12 +zedge=0,0,0,0,0,0,0 +sedge=0,0,0,0,0,0,0 +2 xedge=0,12 +zedge=0.3,0.25 +sedge=0,0 +3 xedge=0,12 +zedge=0.7,0.45 +sedge=0,0 +4 xedge=0,2,4,6,8,10,12 +zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 +sedge=0,0,0,0,0,0,0 +5 xedge=0,2,4,6,8,10,12 +zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 +sedge=0,0,0,0,0,0,0 +6 xedge=0,2,4,6,8,10,12 +zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 +sedge=0,0,0,0,0,0,0 +7 xedge=0,2,4,6,8,10,12 +zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 +sedge=0,0,0,0,0,0,0 +8 xedge=0,2,4,6,8,10,12 +zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 +sedge=0,0,0,0,0,0,0 +sfill=0,0.1,0,0,0.39,0,0 +sfill=0,0.4,0,0,0.31,0,0 +sfill=0,0.9,0,0,0.28,0,0 +sfill=0,1.5,0,0,0.25,0,0 +sfill=0,2.0,0,0,0.55,0,0 +sfill=0,2.4,0,0,0.44,0,0 +sfill=0,3.0,0,0,0.16,0,0 +kedge=1,2,3,4,5,6,7,8 From 38b6e4fd29e6762c7597a4e623c7646597e248ba Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 16:30:44 -0300 Subject: [PATCH 10/28] =?UTF-8?q?Nova=20formata=C3=A7=C3=A3o=20de=20exibi?= =?UTF-8?q?=C3=A7=C3=A3o=20da=20op=C3=A7=C3=A3o=20-s=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A opção -s do programa interfaceBuilder permite ver as interfaces e camadas descritas no arquivo '.itf' de maneira mais amigável. --- interfaceBuilder | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/interfaceBuilder b/interfaceBuilder index 7e655c1..88de30f 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -126,14 +126,25 @@ case "$1" in } NUM_INTERFACES=$(sed -n '/kedge=/p' $INTERFACES_FILENAME | rev | cut -d"," -f1) - HEADER="Arquivo: $INTERFACES_FILENAME Número de interfaces: $NUM_INTERFACES" + HEADER="Arquivo: $INTERFACES_FILENAME Interfaces na pilha: $NUM_INTERFACES" - SPSPLOT=$(sed -n '//,/<\/sp>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/sp>/d' | sed 's/\t//g' | tr "\n" " ") + SFILL_PONTOS=$(grep "sfill=" "$INTERFACES_FILENAME" | cut -d"=" -f2 | cut -d"," -f1-2) + SFILL_SLOOTH=$(grep "sfill=" "$INTERFACES_FILENAME" | cut -d"=" -f2 | cut -d"," -f5) - INTERFACES=$(sed -n '//,/<\/tm>/p' $INTERFACES_FILENAME | sed '/^#/d;//d;/<\/tm>/d;/sedge/d') - echo -e "$HEADER" - echo -e "Interfaces do programa trimodel:\n\t$INTERFACES" - echo -e "Parâmetros do programa spsplot:\n\t$SPSPLOT" + # Carregar as camadas + for i in $(seq $((NUM_INTERFACES-1))) + do + CAMADAS="Camada $i Ponto: ($(echo "$SFILL_PONTOS" | sed -n "${i}p")) Slooth: $(echo "$SFILL_SLOOTH" | sed -n "${i}p" )\n$CAMADAS" + + done + + # Carregar as interfaces + for i in $(seq $NUM_INTERFACES) + do + INTERFACES="\n*** Interface $i ***\n$(grep "$i xedge=" -A1 "$INTERFACES_FILENAME")\n$INTERFACES" + done + + echo -e "$HEADER\n\nDescrição das camadas:\n$CAMADAS\nDescrição das interfaces:\n$INTERFACES" ;; -r | --remove) ## Remover a última interface da pilha From 0c32ef83d2e50540724e2e911f750e38be5960a2 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 16:59:23 -0300 Subject: [PATCH 11/28] =?UTF-8?q?Corrige=20bug=20na=20remo=C3=A7=C3=A3o=20?= =?UTF-8?q?da=20interface=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A correta remoção da interface envolve a remoção de 3 linhas que a descrevem, isto é de LINHA_IN (linha inicial da descrição da interface) até LINHA_OUT=LINHA_IN+2 (linha final da descrição da interface). O bug ocorreu pela utilização de LINHA_OUT=LINHA_IN+3, oque resultou em apagar uma linha extra que descrevia as camadas. --- interfaceBuilder | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interfaceBuilder b/interfaceBuilder index 88de30f..aef8d2c 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -165,12 +165,12 @@ case "$1" in # Apaga as linhas com a última interface LINHA_IN=$(grep -n "[0-9] xedge" "$INTERFACES_FILENAME" | tac | head -1 | cut -d":" -f1) - LINHA_OUT=$((LINHA_IN+3)) + LINHA_OUT=$((LINHA_IN+2)) sed -i "${LINHA_IN},${LINHA_OUT}d" "$INTERFACES_FILENAME" # Apaga o última camada - LINHA=$(grep -n "sfill=" "$INTERFACES_FILENAME" | tac | head -1 | cut -d":" -f1) - sed -i "${LINHAd}" "$INTERFACES_FILENAME" + LINHA=$(grep -n "sfill=" "$INTERFACES_FILENAME" | tail -n -1 | cut -d":" -f1) + sed -i "${LINHA}d" "$INTERFACES_FILENAME" # Apaga a referência a última interface em kedge KEDGE=$(sed -n '/kedge=/p' "$INTERFACES_FILENAME" | rev | cut -d',' -f2- | rev) From b6011a741639ad0d071bd0dcd03b1025306b6c0c Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 17:11:45 -0300 Subject: [PATCH 12/28] =?UTF-8?q?N=C3=A3o=20permite=20a=20remo=C3=A7=C3=A3?= =?UTF-8?q?o=20da=20=C3=BAltima=20interface=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A opção '-r' não permite a remoção da última interface da pilha no arquivo de interfaces. Esta primeira interface é a própria superfície de aquisição e não faria sentido remover tal interface. Por isto o programa sugere ao usuário que crie um novo modelo --- interfaceBuilder | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/interfaceBuilder b/interfaceBuilder index aef8d2c..7b97cf1 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -163,6 +163,14 @@ case "$1" in exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" } + # Impedir a remoção se só tiver uma interface + NUM_INTERFACES=$(grep -n "[0-9] xedge" "$INTERFACES_FILENAME" | wc -l) + [ "$NUM_INTERFACES" -eq "1" ] && { + MENSAGEMERRO="Não é permitido remover a última interface\nTente construir um novo modelo!" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + + } + # Apaga as linhas com a última interface LINHA_IN=$(grep -n "[0-9] xedge" "$INTERFACES_FILENAME" | tac | head -1 | cut -d":" -f1) LINHA_OUT=$((LINHA_IN+2)) From 5f3a51fe8655b0e01ce0c8ddd1cf8ba9174ed532 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 18:02:07 -0300 Subject: [PATCH 13/28] =?UTF-8?q?Esbo=C3=A7o=20da=20op=C3=A7=C3=A3o=20-c?= =?UTF-8?q?=20para=20criar=20novo=20modelo=20.itf=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A opção '-c' permite ao usuário criar um novo modelo do zero. O programa interfaceBuilder verifica se o usuário forneceu o nome de arquivo de modelo e se este já existe, para não permitir sobreescrever modelos já existentes. Depois o programa pede ao usuário as informações básicas do modelo, como dimensão e parâmetros de plotagem e gera o arquivo .itf correspondente com a primeira interface (A primeira interface é a superfície de aquisição). --- interfaceBuilder | 70 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/interfaceBuilder b/interfaceBuilder index 7b97cf1..81aa85e 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -34,10 +34,12 @@ NOME_PROGRAMA="$(basename $0)" DESCRICAO=" Gerar interfaces do modelo da subsuperfície para o programa geomodel.\n\t As interfaces são geradas em um arquivo com extensão '.itf'" PARAMETROS="-h --help::Exibe essa tela de ajuda e sai -v --version::Exibe a versão do programa e sai +-c --create::Criar um novo modelo -a --add::Adicionar interface -s --see::Ver interfaces geradas -r --remove::Remover última interface" -EXEMPLO_DE_USO="~$ $(basename $0) -a x=x1,x2,x3...xn y=y1,y2,y3...yn sfill=p1,s1 +EXEMPLO_DE_USO="~$ $(basename $0) -c arquivo.itf +\t~$ $(basename $0) -a x=x1,x2,x3...xn y=y1,y2,y3...yn sfill=p1,s1 \t~$ $(basename $0) -s \t~$ $(basename $0) -r " @@ -54,6 +56,72 @@ case "$1" in exit 0 ;; + -c | --create) ## Criar um novo modelo + + ## Verificar se o usuário forneceu os arquivos + [ -z "$2" ] && { + MENSAGEMERRO="Usuário não forneceu um nome de arquivo\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + } + + ## Verificar se o usuário forneceu os arquivos + [ -f "$2" ] && { + MENSAGEMERRO="Modelo $2 já existe!\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" + } + + echo "Forneça os parâmetros de plotagem do modelo a seguir:" + read -p "Título: " TITULO + read -p "Amostragem eixo x: " DXNUM + read -p "Amostragem eixo z: " DZNUM + read -p "Legenda eixo z: " LABELZ + read -p "Legenda eixo x: " LABELX + echo "Forneça dimensões do modelo a seguir:" + read -p "xmin (km): " XMIN + read -p "xmax (km): " XMAX + read -p "zmin (km): " ZMIN + read -p "zmax (km): " ZMAX + + XEDGE="$XMIN" + ZEDGE="$ZMIN" + DX=$(echo "scale=2; ($XMAX-$XMIN)/10" | bc -l) + + # Faça a primeira interface (Superfície de aquisição) + for i in $(seq 9) + do + XEDGE="${XEDGE},$(echo "$i*$DX+$XMIN" | bc -l)" + ZEDGE="${ZEDGE},$ZMIN" + + done + + XEDGE="1 xedge=$XEDGE" + ZEDGE="zedge=$ZEDGE" + +cat > $2 <' representam entradas de +# parâmetros dos programas + +# Parâmetros do spsplot para gerar uma imagem eps do modelo + +gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 +titlesize=20 +labelsize=18 dxnum=$DXNUM dznum=$DZNUM wbox=15 hbox=8 +title="$TITULO" +labelz="$LABELZ" labelx="$LABELX" + + +# Parâmetros do programa trimodel + +xmin=$XMIN zmin=$ZMIN xmax=$XMAX zmax=$ZMAX +$XEDGE +$ZEDGE +kedge=1 + +EOF + + ;; -a | --add) ## Adicionar interface à pilha ## Verificar se o usuário forneceu os arquivos From 99d6205ff4da4edf91875ed13c1406605eeaad64 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 18:21:24 -0300 Subject: [PATCH 14/28] =?UTF-8?q?Corrige=20bug=20na=20exibi=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20apenas=20uma=20interface=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quando tem apenas uma interface no arquivo de interfaces lido pelo programa interfaceBuilder, não é possível exibir informação sobre camadas (precisa de no mínimo duas interfaces para formar uma camada). Este commit adapta a lógica do programa para este caso --- interfaceBuilder | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/interfaceBuilder b/interfaceBuilder index 81aa85e..399851b 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -139,7 +139,7 @@ EOF } [ -z "$3" -o -z "$4" ] && { - MENSAGEMERRO="Vetores de pontos x e y sobre a interface não foram passados ao programa\nDigite $(bsename $0) -h para obter ajuda" + MENSAGEMERRO="Vetores de pontos x e y sobre a interface não foram passados ao programa\nDigite $(basename $0) -h para obter ajuda" exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" } @@ -193,18 +193,24 @@ EOF exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" } - NUM_INTERFACES=$(sed -n '/kedge=/p' $INTERFACES_FILENAME | rev | cut -d"," -f1) + NUM_INTERFACES=$(grep '[0-9] xedge' "$INTERFACES_FILENAME" | wc -l) + HEADER="Arquivo: $INTERFACES_FILENAME Interfaces na pilha: $NUM_INTERFACES" - SFILL_PONTOS=$(grep "sfill=" "$INTERFACES_FILENAME" | cut -d"=" -f2 | cut -d"," -f1-2) - SFILL_SLOOTH=$(grep "sfill=" "$INTERFACES_FILENAME" | cut -d"=" -f2 | cut -d"," -f5) + # Precisa de no mínimo duas interfaces para + # formar uma camada + [ "$NUM_INTERFACES" -gt "1" ] && { - # Carregar as camadas - for i in $(seq $((NUM_INTERFACES-1))) - do - CAMADAS="Camada $i Ponto: ($(echo "$SFILL_PONTOS" | sed -n "${i}p")) Slooth: $(echo "$SFILL_SLOOTH" | sed -n "${i}p" )\n$CAMADAS" + SFILL_PONTOS=$(grep "sfill=" "$INTERFACES_FILENAME" | cut -d"=" -f2 | cut -d"," -f1-2) + SFILL_SLOOTH=$(grep "sfill=" "$INTERFACES_FILENAME" | cut -d"=" -f2 | cut -d"," -f5) - done + # Carregar as camadas + for i in $(seq $((NUM_INTERFACES-1))) + do + CAMADAS="Camada $i Ponto: ($(echo "$SFILL_PONTOS" | sed -n "${i}p")) Slooth: $(echo "$SFILL_SLOOTH" | sed -n "${i}p" )\n$CAMADAS" + + done + } # Carregar as interfaces for i in $(seq $NUM_INTERFACES) From d130b31258204e516a477410a57b693273d2ef73 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Mon, 23 Mar 2020 18:55:57 -0300 Subject: [PATCH 15/28] =?UTF-8?q?Corrige=20bug=20na=20substitui=C3=A7?= =?UTF-8?q?=C3=A3o=20da=20linha=20kedge=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O comando sed estava interpretando incorretamente a regex de substituição, retirar o caractere '$' da regex impede a interpretação da barra '/' de fechamento como parte da variável. Basta o conjunto '.*' para fazer referência a qualquer conjunto de caracteres depois de 'kedge=' --- interfaceBuilder | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interfaceBuilder b/interfaceBuilder index 399851b..4a6bab4 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -155,7 +155,7 @@ EOF ZEDGE="$4" SFILL_PONTO=$(echo "$5" | cut -d"=" -f2 | cut -d"," -f1) SFILL_SLOOTH=$(echo "$5" | cut -d"=" -f2 | cut -d"," -f2) - KEDGE=$(grep -n "kedge=" "$INTERFACES_FILENAME" | rev | cut -d"," -f1) + KEDGE=$(grep -n "[0-9] xedge=" "$INTERFACES_FILENAME" | wc -l) NUM_PONTOS=$(echo "$XEDGE" | cut -d"=" -f2 | tr "," "\n" | wc -l) SEDGE="sedge=0" for i in $(seq $((NUM_PONTOS-1))) @@ -256,7 +256,7 @@ EOF # Apaga a referência a última interface em kedge KEDGE=$(sed -n '/kedge=/p' "$INTERFACES_FILENAME" | rev | cut -d',' -f2- | rev) - sed -i "s/kedge=.*$/${KEDGE}/" "$INTERFACES_FILENAME" + sed -i "s/kedge=.*/${KEDGE}/" "$INTERFACES_FILENAME" ;; From e264fe5b4d50119f8f84ffe83bbed5c7e45aa415 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Thu, 2 Apr 2020 23:06:53 -0300 Subject: [PATCH 16/28] =?UTF-8?q?Makefile=20da=20su=C3=ADte=20de=20testes?= =?UTF-8?q?=20de=20interfaceBuilder=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Roda os testes automáticos para o programa interfaceBuilder. No futuro será integrado ao Travis CI para deploy automatizado das versões desta biblioteca --- Makefile | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e00575a --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +# Makefile +# +# Objetivo: Preparar o ambiente e rodar a suíte de testes. +# +# Site: https://dirack.github.io +# +# Versão 1.0 +# +# Programador: Rodolfo A C Neves (Dirack) 02/04/2020 +# +# Email: rodolfo_profissional@hotmail.com +# +# Licença: GPL-3.0 . + +TESTES= interfaceBuilder +DIR_TESTES=./TDD + +install: + @echo "Funcionalidade em desenvolvimento..." + +test: msg $(TESTES) + +msg: + @echo "Testando a biblioteca proSU..." + +%: $(DIR_TESTES)/%_tdd.sh + @echo "...Testando $@" && $< From 02134475111f51afda0ad0f1aabd141d87ea3f53 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Thu, 2 Apr 2020 23:13:05 -0300 Subject: [PATCH 17/28] =?UTF-8?q?Biblioteca=20de=20fun=C3=A7=C3=B5es=20par?= =?UTF-8?q?a=20testes=20autom=C3=A1ticos=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A biblioteca tdd_lib.sh possui funções para testes simples de verificação de condições 'error' e para verificação de instalação de listas de arquivos em 'verificaInstalacao'. --- TDD/tdd_lib.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 TDD/tdd_lib.sh diff --git a/TDD/tdd_lib.sh b/TDD/tdd_lib.sh new file mode 100644 index 0000000..8172e20 --- /dev/null +++ b/TDD/tdd_lib.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# +# tdd_lib.sh (Shell Script) +# +# Objetivo: Biblioteca das funções de teste automatizado. +# +# Site: https://dirack.github.io +# +# Versão 1.0 +# +# Programador: Rodolfo A C Neves (Dirack) 02/04/2020 +# +# Email: rodolfo_profissional@hotmail.com +# +# Licença: GPL-3.0 . + +error(){ +# $1 - Resultado do teste +# $2 - Resultado esperado do teste +# $3 - Número do erro (Para identificar qual teste falhou) +# $4 - Descrição do teste + + echo -en "\t$4" + + [ "$1" != "$2" ] && { + echo -e "\033[35m $(basename $0): ERRO($3): Teste falhou. \033[m" + echo -e " \033[35mResultado esperado: $2\nResultado obtido: $1 \033[m" + exit "$3" + } + + echo " ...passou $3" + + return 0 +} + +verificaInstalacao(){ + + LISTA="$1" + PASTA="$2" + + for i in $LISTA + do + echo -en "\t\t$i..." + [ ! -f "$PASTA/$i" ] && { + echo "...$i não encontrado!" + return 1 + } + + echo "...Ok" + done + + return 0 +} From d07ef6947d817ecc5d2bbf31ca43b0dc2bcddd08 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Thu, 2 Apr 2020 23:17:19 -0300 Subject: [PATCH 18/28] Modelos de teste para o interfaceBuilder #4 Pasta com arquivos no formato ITF lido pelo programa interfaceBuilder --- su_test_models/modelo.itf | 50 +++++++++++++++++++++++++++++++++++ su_test_models/novoModelo.itf | 0 su_test_models/teste.itf | 26 ++++++++++++++++++ su_test_models/uma.itf | 28 ++++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 su_test_models/modelo.itf create mode 100644 su_test_models/novoModelo.itf create mode 100644 su_test_models/teste.itf create mode 100644 su_test_models/uma.itf diff --git a/su_test_models/modelo.itf b/su_test_models/modelo.itf new file mode 100644 index 0000000..eca6ce6 --- /dev/null +++ b/su_test_models/modelo.itf @@ -0,0 +1,50 @@ +# Arquivo de interfaces para o programa geomodel +# As linhas iniciadas com '#' serão ignoradas! +# As linhas marcadas '< >' representam entradas de +# parâmetros dos programas + +# Parâmetros do spsplot para gerar uma imagem eps do modelo + +gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 +titlesize=20 +labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 +title="Modelo de camadas curvas" +labelz="Profundidade (km)" labelx="Distancia (km)" + + +# Parâmetros do programa trimodel + +xmin=0 zmin=0 xmax=12.0 zmax=3.5 +1 xedge=0,2,4,6,8,10,12 +zedge=0,0,0,0,0,0,0 +sedge=0,0,0,0,0,0,0 +2 xedge=0,12 +zedge=0.3,0.25 +sedge=0,0 +3 xedge=0,12 +zedge=0.7,0.45 +sedge=0,0 +4 xedge=0,2,4,6,8,10,12 +zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 +sedge=0,0,0,0,0,0,0 +5 xedge=0,2,4,6,8,10,12 +zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 +sedge=0,0,0,0,0,0,0 +6 xedge=0,2,4,6,8,10,12 +zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 +sedge=0,0,0,0,0,0,0 +7 xedge=0,2,4,6,8,10,12 +zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 +sedge=0,0,0,0,0,0,0 +8 xedge=0,2,4,6,8,10,12 +zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 +sedge=0,0,0,0,0,0,0 +sfill=0,0.1,0,0,0.39,0,0 +sfill=0,0.4,0,0,0.31,0,0 +sfill=0,0.9,0,0,0.28,0,0 +sfill=0,1.5,0,0,0.25,0,0 +sfill=0,2.0,0,0,0.55,0,0 +sfill=0,2.4,0,0,0.44,0,0 +sfill=0,3.0,0,0,0.16,0,0 +kedge=1,2,3,4,5,6,7,8 + diff --git a/su_test_models/novoModelo.itf b/su_test_models/novoModelo.itf new file mode 100644 index 0000000..e69de29 diff --git a/su_test_models/teste.itf b/su_test_models/teste.itf new file mode 100644 index 0000000..ed2efff --- /dev/null +++ b/su_test_models/teste.itf @@ -0,0 +1,26 @@ +# Arquivo de interfaces para o programa geomodel +# As linhas iniciadas com '#' serão ignoradas! +# As linhas marcadas '< >' representam entradas de +# parâmetros dos programas + +# Parâmetros do spsplot para gerar uma imagem eps do modelo + +gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 +titlesize=20 +labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 +title="Modelo de camadas curvas" +labelz="Profundidade (km)" labelx="Distancia (km)" + + +# Parâmetros do programa trimodel + +# Dimensões do modelo +xmin=0 zmin=0 xmax=12.0 zmax=3.5 +##### + +# Interfaces +1 xedge=0,2,4,6,8,10,12 +zedge=0,0,0,0,0,0,0 +sedge=0,0,0,0,0,0,0 +kedge=1 + diff --git a/su_test_models/uma.itf b/su_test_models/uma.itf new file mode 100644 index 0000000..9dbb639 --- /dev/null +++ b/su_test_models/uma.itf @@ -0,0 +1,28 @@ +# Arquivo de interfaces para o programa geomodel +# As linhas iniciadas com '#' serão ignoradas! +# As linhas marcadas '< >' representam entradas de +# parâmetros dos programas + +# Parâmetros do spsplot para gerar uma imagem eps do modelo + +gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 +titlesize=20 +labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 +title="Modelo de camadas curvas" +labelz="Profundidade (km)" labelx="Distancia (km)" + + +# Parâmetros do programa trimodel + +xmin=0 zmin=0 xmax=12.0 zmax=3.5 +1 xedge=0,2,4,6,8,10,12 +zedge=0,0,0,0,0,0,0 +sedge=0,0,0,0,0,0,0 +sfill=0,0.1,0,0,0.39,0,0 +sfill=0,0.4,0,0,0.31,0,0 +sfill=0,0.9,0,0,0.28,0,0 +sfill=0,1.5,0,0,0.25,0,0 +sfill=0,2.0,0,0,0.55,0,0 +sfill=0,2.4,0,0,0.44,0,0 +kedge=1,2,3,4,5,6,7 + From 07e3eb20b412af21fe00a13b00de24837ba14c15 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Thu, 2 Apr 2020 23:33:23 -0300 Subject: [PATCH 19/28] =?UTF-8?q?Retira=20interatividade=20com=20usu=C3=A1?= =?UTF-8?q?rio=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A opção -c de interfaceBuilder agora é não interativa, pois tal abordagem prejudica a lógica dos testes automatizados. Todos os parâmetros são passados pela linha de comandos --- interfaceBuilder | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/interfaceBuilder b/interfaceBuilder index 4a6bab4..f157a65 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -38,7 +38,7 @@ PARAMETROS="-h --help::Exibe essa tela de ajuda e sai -a --add::Adicionar interface -s --see::Ver interfaces geradas -r --remove::Remover última interface" -EXEMPLO_DE_USO="~$ $(basename $0) -c arquivo.itf +EXEMPLO_DE_USO="~$ $(basename $0) -c arquivo.itf \t~$ $(basename $0) -a x=x1,x2,x3...xn y=y1,y2,y3...yn sfill=p1,s1 \t~$ $(basename $0) -s \t~$ $(basename $0) -r @@ -70,17 +70,23 @@ case "$1" in exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO" } - echo "Forneça os parâmetros de plotagem do modelo a seguir:" - read -p "Título: " TITULO - read -p "Amostragem eixo x: " DXNUM - read -p "Amostragem eixo z: " DZNUM - read -p "Legenda eixo z: " LABELZ - read -p "Legenda eixo x: " LABELX - echo "Forneça dimensões do modelo a seguir:" - read -p "xmin (km): " XMIN - read -p "xmax (km): " XMAX - read -p "zmin (km): " ZMIN - read -p "zmax (km): " ZMAX + # Parâmetros de plotagem do modelo + TITULO='' + DXNUM='' + DZNUM='' + LABELZ='' + LABELX='' + + #Dimensões do modelo + [ "$#" -lt "6" ] && { + MENSAGEMERRO="Usuário não forneceu as dimensões do modelo xmin xmax zmin zmax!\nDigite $(basename $0) -h para obter ajuda" + exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO" + } + + XMIN="$3" + XMAX="$4" + ZMIN="$5" + ZMAX="$6" XEDGE="$XMIN" ZEDGE="$ZMIN" From 83997cdba1262c75ee0db4841f91f4d17430386f Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Thu, 2 Apr 2020 23:36:07 -0300 Subject: [PATCH 20/28] =?UTF-8?q?Move=20os=20modelos=20itf=20para=20o=20di?= =?UTF-8?q?ret=C3=B3rio=20de=20modelos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modelo.itf | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 modelo.itf diff --git a/modelo.itf b/modelo.itf deleted file mode 100644 index eca6ce6..0000000 --- a/modelo.itf +++ /dev/null @@ -1,50 +0,0 @@ -# Arquivo de interfaces para o programa geomodel -# As linhas iniciadas com '#' serão ignoradas! -# As linhas marcadas '< >' representam entradas de -# parâmetros dos programas - -# Parâmetros do spsplot para gerar uma imagem eps do modelo - -gedge=0.5 gtri=2.0 gmin=0.2 gmax=1.0 -titlesize=20 -labelsize=18 dxnum=1.0 dznum=0.5 wbox=15 hbox=8 -title="Modelo de camadas curvas" -labelz="Profundidade (km)" labelx="Distancia (km)" - - -# Parâmetros do programa trimodel - -xmin=0 zmin=0 xmax=12.0 zmax=3.5 -1 xedge=0,2,4,6,8,10,12 -zedge=0,0,0,0,0,0,0 -sedge=0,0,0,0,0,0,0 -2 xedge=0,12 -zedge=0.3,0.25 -sedge=0,0 -3 xedge=0,12 -zedge=0.7,0.45 -sedge=0,0 -4 xedge=0,2,4,6,8,10,12 -zedge=1.2,1.2,1.3,1.4,0.7,1.05,1.2 -sedge=0,0,0,0,0,0,0 -5 xedge=0,2,4,6,8,10,12 -zedge=1.7,1.7,1.8,2.0,1.1,1.45,1.8 -sedge=0,0,0,0,0,0,0 -6 xedge=0,2,4,6,8,10,12 -zedge=2.2,2.2,2.3,2.5,1.6,1.9,2.2 -sedge=0,0,0,0,0,0,0 -7 xedge=0,2,4,6,8,10,12 -zedge=2.7,2.7,2.8,2.9,2.2,2.4,2.7 -sedge=0,0,0,0,0,0,0 -8 xedge=0,2,4,6,8,10,12 -zedge=3.5,3.5,3.5,3.5,3.5,3.5,3.5 -sedge=0,0,0,0,0,0,0 -sfill=0,0.1,0,0,0.39,0,0 -sfill=0,0.4,0,0,0.31,0,0 -sfill=0,0.9,0,0,0.28,0,0 -sfill=0,1.5,0,0,0.25,0,0 -sfill=0,2.0,0,0,0.55,0,0 -sfill=0,2.4,0,0,0.44,0,0 -sfill=0,3.0,0,0,0.16,0,0 -kedge=1,2,3,4,5,6,7,8 - From 92ff53596c20ed91821cfff1465376324614ca1a Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 00:05:24 -0300 Subject: [PATCH 21/28] Teste criar modelo itf #4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A variável DIR serve para garantir que o teste possa ser realizado tanto de dentro da pasta TDD, chamando '../interfaceBuilder_tdd.sh' quanto de dentro da pasta da proSU, chamando './interfaceBuilder_tdd.sh'. O teste cria um modelo em um arquivo temporário e apaga ao sair o script de teste ou ao atingir algum erro fatal --- TDD/interfaceBuilder_tdd.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 TDD/interfaceBuilder_tdd.sh diff --git a/TDD/interfaceBuilder_tdd.sh b/TDD/interfaceBuilder_tdd.sh new file mode 100755 index 0000000..2a07b1c --- /dev/null +++ b/TDD/interfaceBuilder_tdd.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# interfaceBuilder_tdd.sh (Shell Script) +# +# Objetivo: Testes automáticos do programa interfaceBuilder. +# +# Site: https://dirack.github.io +# +# Versão 1.0 +# +# Programador: Rodolfo A C Neves (Dirack) 02/04/2020 +# +# Email: rodolfo_profissional@hotmail.com +# +# Licença: GPL-3.0 . + +source $(dirname $0)/tdd_lib.sh + +DIR=".." + +[ -f "./interfaceBuilder" ] && { + DIR="." +} + +# Criar novo modelo itf +TMP=$(mktemp -u tmp_XXXX.itf) + +trap "rm $TMP" err exit + +error "$($DIR/interfaceBuilder -c $TMP 0 10 0 3 && echo $?)" "0" "1" "Criar novo modelo .itf" From 28ca44a6024d62c0144ef60abe89f9362a4215c0 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 00:56:38 -0300 Subject: [PATCH 22/28] Teste adicionar interfaces ao modelo #4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Testa a opção -a para adicionar interfaces a um modelo ITF. Este teste adiciona 7 interfaces em um looping, utilizando os arrays xedge, zedge e sfill para adicionar uma interface por vez ao modelo --- TDD/interfaceBuilder_tdd.sh | 25 ++++++++++++++++++++++++- interfaceBuilder | 8 +++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/TDD/interfaceBuilder_tdd.sh b/TDD/interfaceBuilder_tdd.sh index 2a07b1c..c3903de 100755 --- a/TDD/interfaceBuilder_tdd.sh +++ b/TDD/interfaceBuilder_tdd.sh @@ -27,4 +27,27 @@ TMP=$(mktemp -u tmp_XXXX.itf) trap "rm $TMP" err exit -error "$($DIR/interfaceBuilder -c $TMP 0 10 0 3 && echo $?)" "0" "1" "Criar novo modelo .itf" +error "$($DIR/interfaceBuilder -c $TMP 0 12 0 3.5 && echo $?)" "0" "1" "Criar novo modelo .itf" + +echo "Adicionar 7 interfaces ao modelo..." +xedge=("0,12" "0,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12") +zedge=("0.3,0.25" "0.7,0.45" "1.2,1.2,1.3,1.4,0.7,1.05,1.2" "1.7,1.7,1.8,2.0,1.1,1.45,1.8" "2.2,2.2,2.3,2.5,1.6,1.9,2.2" "2.7,2.7,2.8,2.9,2.2,2.4,2.7" "3.5,3.5,3.5,3.5,3.5,3.5,3.5") + +sfill=("0,0.1,0,0,0.39,0,0" "0,0.4,0,0,0.31,0,0" "0,0.9,0,0,0.28,0,0" "0,1.5,0,0,0.25,0,0" "0,2.0,0,0,0.55,0,0" "0,2.4,0,0,0.44,0,0" "0,3.0,0,0,0.16,0,0") + +ERRO="0" +for i in $(seq 0 1 6) +do + echo "...Interface $i" + $DIR/interfaceBuilder -a $TMP x=${xedge[$i]} y=${zedge[$i]} sfill=${sfill[$i]} + [ "$?" -ne "0" ] && { + ERRO="1" + break + } +done + +error "$ERRO" "0" "2" "Adicionar interfaces ao modelo $TMP" + +# Remover uma interface da pilha +#error "" "" "" "Remover uma interface do modelo .itf" + diff --git a/interfaceBuilder b/interfaceBuilder index f157a65..f10533e 100755 --- a/interfaceBuilder +++ b/interfaceBuilder @@ -102,6 +102,7 @@ case "$1" in XEDGE="1 xedge=$XEDGE" ZEDGE="zedge=$ZEDGE" + SEDGE="sedge=0,0,0,0,0,0,0,0,0,0" cat > $2 < EOF @@ -176,9 +178,9 @@ EOF echo "$SEDGE" >> "$TMP" sed -n "/sfill=/p" "$INTERFACES_FILENAME" >> "$TMP" echo "sfill=0,$SFILL_PONTO,0,0,$SFILL_SLOOTH,0,0" >> $TMP - KEDGE=$(sed -n '/kedge=/p' "$INTERFACES_FILENAME") - KEDGE=$(echo "$KEDGE" | sed "s/^.*kedge=.*$/$KEDGE,$((KEDGE+1))/") - echo "$KEDGE" >> "$TMP" + KEDGE=$(grep 'kedge=' "$INTERFACES_FILENAME") + KEDGE=$(echo "${KEDGE},$((KEDGE+1))") + echo "${KEDGE}" >> "$TMP" sed -n '/<\/tm>/,$p' "$INTERFACES_FILENAME" >> "$TMP" mv "$TMP" "$INTERFACES_FILENAME" ;; From 68551ddf78ef682e591362a35a34fc2859e6c58d Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 01:28:14 -0300 Subject: [PATCH 23/28] =?UTF-8?q?Teste=20de=20remo=C3=A7=C3=A3o=20de=20int?= =?UTF-8?q?erfaces=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Testa a opção -r que remove uma interface da pilha, e a opção -s que permite visualizar informações sobre o modelo. Estas opções podem ser combinadas em um teste que armazena o número de interfaces antes da remoção e compara com o número de interfaces depois da remoção --- TDD/interfaceBuilder_tdd.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/TDD/interfaceBuilder_tdd.sh b/TDD/interfaceBuilder_tdd.sh index c3903de..5598ee1 100755 --- a/TDD/interfaceBuilder_tdd.sh +++ b/TDD/interfaceBuilder_tdd.sh @@ -48,6 +48,11 @@ done error "$ERRO" "0" "2" "Adicionar interfaces ao modelo $TMP" -# Remover uma interface da pilha -#error "" "" "" "Remover uma interface do modelo .itf" - +# Testar remover uma interface da pilha +NUM_INTERFACES_ANTES=$($DIR/interfaceBuilder -s "$TMP" | grep Arquivo | rev | cut -d" " -f1) +error "$?" "0" "3" "Ver informações sobre o modelo $TMP" + +$DIR/interfaceBuilder -r "$TMP" +NUM_INTERFACES_DEPOIS=$($DIR/interfaceBuilder -s "$TMP" | grep Arquivo | rev | cut -d" " -f1) +RESULTADO=$(echo "${NUM_INTERFACES_ANTES}-1" | bc) +error "$NUM_INTERFACES_DEPOIS" "$RESULTADO" "4" "Testar número de interfaces após remoção $TMP" From 0def9edea55c3dc9df1d1acbc51747dbf746b592 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 01:32:37 -0300 Subject: [PATCH 24/28] =?UTF-8?q?Coment=C3=A1rios=20para=20delimitar=20par?= =?UTF-8?q?tes=20do=20teste=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TDD/interfaceBuilder_tdd.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TDD/interfaceBuilder_tdd.sh b/TDD/interfaceBuilder_tdd.sh index 5598ee1..5394c00 100755 --- a/TDD/interfaceBuilder_tdd.sh +++ b/TDD/interfaceBuilder_tdd.sh @@ -16,6 +16,7 @@ source $(dirname $0)/tdd_lib.sh +# Verificar diretório do programa a ser testado DIR=".." [ -f "./interfaceBuilder" ] && { @@ -29,6 +30,7 @@ trap "rm $TMP" err exit error "$($DIR/interfaceBuilder -c $TMP 0 12 0 3.5 && echo $?)" "0" "1" "Criar novo modelo .itf" +# Teste adicionar 7 interfaces ao modelo em um looping echo "Adicionar 7 interfaces ao modelo..." xedge=("0,12" "0,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12" "0,2,4,6,8,10,12") zedge=("0.3,0.25" "0.7,0.45" "1.2,1.2,1.3,1.4,0.7,1.05,1.2" "1.7,1.7,1.8,2.0,1.1,1.45,1.8" "2.2,2.2,2.3,2.5,1.6,1.9,2.2" "2.7,2.7,2.8,2.9,2.2,2.4,2.7" "3.5,3.5,3.5,3.5,3.5,3.5,3.5") @@ -52,6 +54,7 @@ error "$ERRO" "0" "2" "Adicionar interfaces ao modelo $TMP" NUM_INTERFACES_ANTES=$($DIR/interfaceBuilder -s "$TMP" | grep Arquivo | rev | cut -d" " -f1) error "$?" "0" "3" "Ver informações sobre o modelo $TMP" +# Comparar número de interfaces depois da remoção com antes $DIR/interfaceBuilder -r "$TMP" NUM_INTERFACES_DEPOIS=$($DIR/interfaceBuilder -s "$TMP" | grep Arquivo | rev | cut -d" " -f1) RESULTADO=$(echo "${NUM_INTERFACES_ANTES}-1" | bc) From 3aa550643f1bbbe988b05763677e6805cc70491a Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 01:39:56 -0300 Subject: [PATCH 25/28] =?UTF-8?q?Esbo=C3=A7o=20dos=20manuais=20de=20uso=20?= =?UTF-8?q?dos=20programas=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Estes manuais de uso são lidos com o programa man do Shell --- manuais/geomodel.1 | 81 +++++++++++++++++++++++++ manuais/interfaceBuilder.1 | 119 +++++++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 manuais/geomodel.1 create mode 100644 manuais/interfaceBuilder.1 diff --git a/manuais/geomodel.1 b/manuais/geomodel.1 new file mode 100644 index 0000000..fc465af --- /dev/null +++ b/manuais/geomodel.1 @@ -0,0 +1,81 @@ +.TH GEOMODEL 1 "03 ABR 2020" "Versão 1.0" "GEOMODEL Manual de uso" + +.SH NOME +geomodel - Baixar e formatar arquivo SConstruct do site oficial do Madagascar. +Listar todos os papers da aba 'Reproducible Documents' e seus respectivos SConstruct's. + +.SH RESUMO +.B geomodel +[\-h] [\-\-help] [-v] [\-\-version] [\-l] + +.SH DESCRIÇÃO +.PP +GEOMODEL é um auxiliar de pesquisa de papers no site oficial do MADAGASCAR +buscando um determinado assunto nas descrições disponíveis no site. +Ao utilizar este programa você pode baixar diretamente um SConstruct já formatado, +através do terminal, fornecendo ao programa um link de uma página do site do MADAGASCAR +que contenha algum SConstruct. + +.SH OPÇÕES +GEOMODEL aceita as seguintes opções: +.TP 8 +.B \-h, \-\-help +Exibe a mensagem de ajuda do programa e sai. +.TP 8 +.B \-v, \-\-version +Exibe a versão do programa. +.TP 8 +.B \-l +Baixa o SConstruct da página para a pasta atual. +Este SConstruct já terá o nome e formato padrão de Script +do MADAGASCAR. + +.SH EXEMPLOS DE USO +.PP +Baixar o SConstruct da página para a pasta atual. + + ~$ geomodel -l + +.SH AMBIENTE +GEOMODEL armazena uma lista com os links para os papers disponíveis no site do +MADAGASCAR em /tmp/linksScons.txt e utiliza esta listagem para procurar pelos +assuntos dos papers. Ao pesquisar um paper específico, o programa procura no +site do MADAGASCAR por todos os scripts SConstruct's associados com aquele +paper e exibe a lista ao usuário. + +.SH FILES +GEOMODEL é instalado na pasta /shellinclude, e precisa de permissão de execução. +Outros usuários podem preferir instalar o programa no seu diretório de preferência, o que +não afetará a sua usabilidade, desde que este diretório esteja definido na sua $PATH. + +.SH SUGESTÕES E 'BUG REPORTS' +Qualquer bug encontrado deve ser reportado para o repositório do +Github da Biblioteca Shell Script na aba 'issues' em: + + https://github.com/Dirack/Shell-Script/issues + +E deve-se notificar por email o responsável pela manutenção do código: + + rodolfo_profissional@hotmail.com (Rodolfo Dirack). + +Quando reportar um bug é importante explicitar em que situação este foi produzido +para que possa ser reproduzido pelo autor, a versão do programa e toda informação +relevante será bem vinda. + +.SH AUTORES +Rodolfo A. C. Neves (Dirack), e o Grupo de Programação Aplicada à Geofísica (GPGEOF). + +Contato: + +-Página no github (Dirack) https://github.com/Dirack + +-Página no github (GPGEOF) https://github.com/gpgeof. + +.SH VEJA TAMBÉM +Visite o nosso canal de divulgação científica no Youtube (Geofisicando) em: + + https://www.youtube.com/channel/UCi5XD5PCQtPrIRD0H_GJvag + +Site oficial do MADAGASCAR: + + http://www.ahay.org/wiki/Main_Page diff --git a/manuais/interfaceBuilder.1 b/manuais/interfaceBuilder.1 new file mode 100644 index 0000000..a3dc765 --- /dev/null +++ b/manuais/interfaceBuilder.1 @@ -0,0 +1,119 @@ +.TH INTERFACEBUILDER 1 "03 ABR 2020" "Versão 1.0" "INTERFACEBUILDER Manual de uso" + +.SH NOME +interfaceBuilder - Gerar arquivo ITF, arquivo de interfaces lido pelo programa geomodel. +Geomodel realiza a modelagem com o programa triseis do pacote SU a partir dos modelos +gerados por este programa. + +.SH RESUMO +.B interfaceBuilder +[\-h] [\-\-help] [-v] [\-\-version] [\-c] [\-\-create] [\-a] [\-\-add] +[\-s] [\-\-see] [\-r] [\-\-remove] + +.SH DESCRIÇÃO +.PP +INTERFACEBUILDER é um auxiliar para gerar modelos de refletores em subsuperfície +lidos pelo programa triseis do pacote de processamento sísmico Seismic Unix (SU). + +.SH OPÇÕES +INTERFACEBUILDER aceita as seguintes opções: +.TP 8 +.B \-h, \-\-help +Exibe a mensagem de ajuda do programa e sai. +.TP 8 +.B \-v, \-\-version +Exibe a versão do programa. +.TP 8 +.B \-c \-\-create arquivo.itf +Esta opção cria um novo modelo 2D e armazena no arquivo 'arquivo.itf'. +Este modelo terá as dimensões do eixo x dadas por +xmin e xmax, e as dimensões do eixo z dadas por zmin e zmax. +O modelo é inicializado com uma única interface que corresponde à superfície +de aquisição. Não é possível criar um modelo com o nome de arquivo que já existe. + +.TP 8 +.B \-a \-\-add arquivo.itf x=x1,x2,x3...xn y=y1,y2,y3...yn sfill=p1,s1 +Adiciona uma nova interface ao arquivo 'arquivo.itf' definida pelos pontos +x e y. O programa fará a iterpolação dos pontos utilizando o programa trimodel +do Seismic Unix (SU). + +O parâmetro sfill=p1,s1 é um ponto (0,p1) em uma camada demarcada pela +última interface no modelo e a interface que está sendo adicionada. +O parâmetro s1 é a vagarosidade ao quadrado (slooth) da camada. + +.TP 8 +.B \-s \-\-see arquivo.itf +Exibe informações sobre as interfaces do modelo definido no arquivo 'arquivo.itf'. + +.TP 8 +.B \-r \-\-remove arquivo.itf +Remove a última interface cadastrada no modelo definido no arquivo 'arquivo.itf'. +Não é permitido remover a primeira interface do modelo. Ou seja, o modelo terá no +mínimo uma interface, gerada durante a sua criação. + +.SH EXEMPLOS DE USO +.PP +Gerar um modelo de exemplo, com dimensões xmin=0 xmax=12 zmin=0 zmax=3.5. + + ~$ interfaceBuilder -c modelo.itf 0 12 0 3.5 + +.PP +Adicionar uma interface ao modelo gerado. + + ~$ interfaceBuilder -a modelo.itf x=0,12 y=0.7,0.45 sfill=1,0.39 + +.PP +Ver as interfaces cadastradas no modelo. + + ~$ interfaceBuilder -s modelo.itf + +.PP +Remover a última interface cadastrada. + + ~$ interfaceBuilder -r modelo.itf + +.SH AMBIENTE +INTERFACEBUILDER precisa do pacote Seismic Unix (SU) corretamente instalado. É +uma interface para o programa trimodel do SU e gera os dados no formato lido por +este programa. + +.SH FILES +INTERFACEBUILDER é instalado na pasta /proSU, e precisa de permissão de execução. +Outros usuários podem preferir instalar o programa no seu diretório de preferência, o que +não afetará a sua usabilidade, desde que este diretório esteja definido na sua $PATH. + +.SH SUGESTÕES E 'BUG REPORTS' +Qualquer bug encontrado deve ser reportado para o repositório do +Github desta Biblioteca na aba 'issues' em: + + https://github.com/Dirack/proSU/issues + +E deve-se notificar por email os responsáveis pela manutenção do código: + + rodolfo_profissional@hotmail.com (Rodolfo Dirack). + + murilovj@gmail.com (Murilo Santiago). + +Quando reportar um bug é importante explicitar em que situação este foi produzido +para que possa ser reproduzido pelo autor, a versão do programa e toda informação +relevante será bem vinda. + +.SH AUTORES +Rodolfo A. C. Neves (Dirack), Murilo Santiago e o Grupo de Programação Aplicada à Geofísica (GPGEOF). + +Contato: + +-Página no github (Dirack) https://github.com/Dirack + +-Página no github(Sanmurilo) https://github.com/sanmurilo + +-Página no github (GPGEOF) https://github.com/gpgeof. + +.SH VEJA TAMBÉM +Visite o nosso canal de divulgação científica no Youtube (Geofisicando) em: + + https://www.youtube.com/channel/UCi5XD5PCQtPrIRD0H_GJvag + +Site oficial do pacote SU: + + https://cwp.mines.edu/ From cfb136ba7ef4ddb0ded3c884b969305253e6af31 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 22:00:18 -0300 Subject: [PATCH 26/28] Corrige o texto do manual de uso #4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O programa interfaceBuilder depende apenas do shell bash para gerar os arquivos de interfaces '.itf'. Os programas que parseam estes arquivos para gerar modelos para o programa trimodel do SU é que precisam do pacote SU instalado --- manuais/interfaceBuilder.1 | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/manuais/interfaceBuilder.1 b/manuais/interfaceBuilder.1 index a3dc765..b3bb734 100644 --- a/manuais/interfaceBuilder.1 +++ b/manuais/interfaceBuilder.1 @@ -2,8 +2,8 @@ .SH NOME interfaceBuilder - Gerar arquivo ITF, arquivo de interfaces lido pelo programa geomodel. -Geomodel realiza a modelagem com o programa triseis do pacote SU a partir dos modelos -gerados por este programa. +Geomodel cria o modelo em um formato binário com o programa trimodel do pacote de processamento +sísmico Seimic Unix (SU) a partir dos arquivos .itf gerados por este programa. .SH RESUMO .B interfaceBuilder @@ -13,7 +13,8 @@ gerados por este programa. .SH DESCRIÇÃO .PP INTERFACEBUILDER é um auxiliar para gerar modelos de refletores em subsuperfície -lidos pelo programa triseis do pacote de processamento sísmico Seismic Unix (SU). +lidos pelo programa trimodel do pacote de processamento sísmico Seismic Unix (SU) +chamado através do programa geomodel. .SH OPÇÕES INTERFACEBUILDER aceita as seguintes opções: @@ -34,8 +35,7 @@ de aquisição. Não é possível criar um modelo com o nome de arquivo que já .TP 8 .B \-a \-\-add arquivo.itf x=x1,x2,x3...xn y=y1,y2,y3...yn sfill=p1,s1 Adiciona uma nova interface ao arquivo 'arquivo.itf' definida pelos pontos -x e y. O programa fará a iterpolação dos pontos utilizando o programa trimodel -do Seismic Unix (SU). +x e y. O parâmetro sfill=p1,s1 é um ponto (0,p1) em uma camada demarcada pela última interface no modelo e a interface que está sendo adicionada. @@ -73,9 +73,11 @@ Remover a última interface cadastrada. ~$ interfaceBuilder -r modelo.itf .SH AMBIENTE -INTERFACEBUILDER precisa do pacote Seismic Unix (SU) corretamente instalado. É -uma interface para o programa trimodel do SU e gera os dados no formato lido por -este programa. +INTERFACEBUILDER é um Shell Script para gerar um modelo lido pelo programa geomodel +em um formato de arquivo de texto com a extensão '.itf'. +Utiliza comandos do shell bash para gerar os arquivos. Porém, +os programas que geram modelos através destes arquivos, como o geomodel, +precisam do pacote Seismic Unix (SU) corretamente instalado. .SH FILES INTERFACEBUILDER é instalado na pasta /proSU, e precisa de permissão de execução. From 74654b9c1c1f41b2447023f5117cd350b9c2bc1d Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 22:03:24 -0300 Subject: [PATCH 27/28] =?UTF-8?q?Arquivo=20de=20configura=C3=A7=C3=A3o=20d?= =?UTF-8?q?o=20Travis=20CI=20#4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Travis CI roda os testes automatizaos do diretório TDD a partir de um Makefile. --- .travis.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..aa22f1c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +branches: + only: + - master + - /^develop.*$/ +dist: bionic +install: + - make install +script: + - make test From 0958f489adc5e721e7bca340e0f4a3b9114355c7 Mon Sep 17 00:00:00 2001 From: Rodolfo Dirack Date: Fri, 3 Apr 2020 22:26:55 -0300 Subject: [PATCH 28/28] Modifica Makefile para chamar os testes #4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O arquivo Makefile estava ignorando os testes automatizados. Chamando diretamente os arquivos de teste, no alvo test, faz com que os testes não sejam ignorados --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index e00575a..d4d2b64 100644 --- a/Makefile +++ b/Makefile @@ -12,16 +12,16 @@ # # Licença: GPL-3.0 . -TESTES= interfaceBuilder +TESTES=interfaceBuilder DIR_TESTES=./TDD install: @echo "Funcionalidade em desenvolvimento..." -test: msg $(TESTES) +test: $(TESTES:=_tdd.sh) msg: @echo "Testando a biblioteca proSU..." -%: $(DIR_TESTES)/%_tdd.sh +%_tdd.sh: $(DIR_TESTES)/%_tdd.sh @echo "...Testando $@" && $<