-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
comp
executable file
·149 lines (111 loc) · 4.62 KB
/
comp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#!/bin/bash
#
# comp (Shell Script)
#
# Objetivo: Compilar e adicionar programas escritos em linguagem C
# ao pacote de processamento sísmico MADAGASCAR.
#
# IMPORTANTE: Depende do pacote MADAGASCAR instalado para funcionar!
#
# -MADAGASCAR é um pacote open source de processamento sísmico (http://www.ahay.org/wiki/Main_Page)
#
# Site: http://www.geofisicando.com
#
# Versão 1.0
#
# Programador: Rodolfo A. C. Neves 10/01/2019 (original 1.0 - Beta)
#
# email (manutenção): [email protected]
#
# Licença: Software de uso livre e código aberto.
# Biblioteca de funções para formatar a mensagem de ajuda
source mensagemAjuda
# Biblioteca de funções para formatar a mensagem de erro
source mensagemErro
# Verificar se a variável RSFSRC está setada
[ -z "$RSFSRC" ] && {
echo -e "\033[31m$(basename $0): AVISO: A variável RSFSRC não está setada!\033[m"
echo -e "\033[31m$(basename $0): AVISO: Não foi possível encontrar onde os códigos fonte do pacote Madagascar estão instalados!\033[m"
exit 1
}
#----------------{ Configuração de variáveis }-----------------------------#
# Diretório principal da sua instalação do pacote MADAGASCAR
PASTA_PRINCIPAL_MADAGASCAR="$RSFSRC"
# Seu diretório de usuário dentro do pacote MADAGASCAR
PASTA_USUARIO_MADAGASCAR="$RSFSRC/user"
# Versão deste programa
VERSAO="Versão 1.0"
OPCAO="$1"
PASTA_USUARIO_FORNECIDA="$2"
NOME_PROGRAMA="$(basename $0)"
DESCRICAO="Compila e adiciona programas escritos em linguagem C ao pacote de processamento sísmico MADAGASCAR."
PARAMETROS="-h --help::Exibe esta mensagem de ajuda e sai
-v --version::Exibe a Versão do programa e sai
-c :: Compila programas de uma pasta de usuário específica do pacote MADAGASCAR"
EXEMPLO_DE_USO="~$ $(basename $0) -c pastaDeUsuario"
#--------------------------------------------------------------------------#
# Verificar se o usuário forneceu algum parâmetro ao programa
[ -z "$OPCAO" ] && {
MENSAGEMERRO="Usuário não ofereceu parâmetros ao programa!\nDigite $(basename $0) -h para obter ajuda!"
exibirMensagemErroProgramaFormatada "$(basename $0)" "1" "$MENSAGEMERRO"
}
case "$OPCAO" in
-h | --help) ## Exibir ajuda
exibirMensagemAjudaProgramaFormatada "$NOME_PROGRAMA" "$DESCRICAO" "$PARAMETROS" "$EXEMPLO_DE_USO"
exit 0
;;
-v | --version) ## Exibir versão deste programa
echo -e "\033[00;01m$VERSAO\033[m"
exit 0
;;
-c) ## Compilar e adicionar programas ao MADAGASCAR
# Foi fornecida uma pasta de usuário a este programa?
# Sim, troque o nome em $PASTA_USUARIO_MADAGASCAR
# Não, utilize a pasta $PASTA_USUARIO_MADAGASCAR como foi definida
if [ -n "$PASTA_USUARIO_FORNECIDA" ]
then
PASTA_USUARIO_FORNECIDA="$PASTA_PRINCIPAL_MADAGASCAR/user/$PASTA_USUARIO_FORNECIDA"
# Verificar se a pasta fornecida é um diretório de
# usuário presente na instalação MADAGASCAR
if [ ! -d "$PASTA_USUARIO_FORNECIDA" ]
then
MENSAGEMERRO="Pasta de usuário $PASTA_USUARIO_FORNECIDA NÃO encontrada!"
exibirMensagemErroProgramaFormatada "$(basename $0)" "2" "$MENSAGEMERRO"
fi
PASTA_USUARIO_MADAGASCAR="$PASTA_PRINCIPAL_MADAGASCAR/user/$2"
else
MENSAGEMERRO="Nenhuma pasta de usuário foi fornecida a este programa!"
exibirMensagemErroProgramaFormatada "$(basename $0)" "3" "$MENSAGEMERRO"
fi
# Verificar se um SConstruct de compilação existe na pasta
[ -f "$PASTA_USUARIO_MADAGASCAR/SConstruct" ] || {
MENSAGEMERRO="Um SConstruct para a compilação de programas não foi encontrado na pasta $PASTA_USUARIO_MADAGASCAR!"
exibirMensagemErroProgramaFormatada "$(basename $0)" "4" "$MENSAGEMERRO"
}
echo -e "\033[35mcompilando $PASTA_USUARIO_MADAGASCAR ...\033[m"
# Mover para a pasta de usuário e rodar o scons
if cd "$PASTA_USUARIO_MADAGASCAR" && scons
then
# Informar o usuário se ocorrer erro de compilação
echo -e "\033[35mCompilação realizada com sucesso!\033[m"
# Mover para o diretório principal do MADAGASCAR
cd "$PASTA_PRINCIPAL_MADAGASCAR"
# Adicione o programa ao pacote MADAGASCAR
if sudo scons install
then
echo -e "\033[35mInstalação realizada com sucesso!\033[m"
else
MENSAGEMERRO="Erro durante a instalação!"
exibirMensagemErroProgramaFormatada "$(basename $0)" "5" "$MENSAGEMERRO"
fi
else
MENSAGEMERRO="Erro de compilação em $PASTA_USUARIO_MADAGASCAR"
exibirMensagemErroProgramaFormatada "$(basename $0)" "6" "$MENSAGEMERRO"
fi
exit 0
;;
*) ## Usuário forneceu parâmetro desconhecido ao programa
MENSAGEMERRO="Opção $OPCAO desconhecida!\nDigite $(basename $0) -h para obter ajuda"
exibirMensagemErroProgramaFormatada "$(basename $0)" "7" "$MENSAGEMERRO"
;;
esac