Commit 7b4367013335cb4ee12f18d1983ffb1010a732ee

Authored by edulucio
1 parent af8a83ec
Exists in master

Atualização da versão! Melhorias e correções no processo de instalação! By Questor

.directory
... ... @@ -1,5 +0,0 @@
1   -[Dolphin]
2   -PreviewsShown=true
3   -Timestamp=2016,6,14,9,59,19
4   -Version=3
5   -ViewMode=1
LBConverter.tar.gz
No preview for this file type
ez_i.bash
... ... @@ -2,7 +2,7 @@
2 2 : 'Trata-se de um módulo que oferece uma série de funcionalidades para
3 3 criar um instalador usando "bash".
4 4  
5   -Version 1.1.0b
  5 +Version 1.2.0b
6 6  
7 7 Apache License
8 8 Version 2.0, January 2004
... ... @@ -146,8 +146,8 @@ f_ez_sed_ecp() {
146 146 : '"Escapar" strings para o comando "sed".
147 147  
148 148 Como há muitas semelhanças entre o escape para "sed" ("f_ez_sed") e
149   - escape para "grep" ("f_fl_cont_str") optei por colocar essa
150   - função como utilitária para as outras duas citadas.
  149 + escape para "grep" ("f_fl_cont_str") optei por colocar essa função
  150 + como utilitária para as outras duas.
151 151  
152 152 Args:
153 153 VAL_TO_ECP (str): Valor a ser "escapado".
... ... @@ -171,10 +171,23 @@ f_ez_sed_ecp() {
171 171 DONT_ECP_SQ=0
172 172 fi
173 173 F_EZ_SED_ECP_R=$VAL_TO_ECP
  174 +
  175 + # NOTE: Com essa intervenção conseguimos passar argumentos para um comando
  176 + # "sed" mesmo que o texto tenha quebras de linha! By Questor
  177 + F_EZ_SED_ECP_R=$(echo -n "$F_EZ_SED_ECP_R" | awk 'BEGIN {RS="dn"} {gsub("\n","\\n"); printf $0}')
  178 +
  179 + # NOTE: Para os casos onde "\n" faz parte dos argumentos. Nesses casos
  180 + # os argumentos possuem "\n" em vez de quebras de linha efetivamente. Se
  181 + # desabilitado "\n" será tratado como texto e não será convertido para
  182 + # quebras! By Questor
174 183 if [ ${DONT_ECP_NL} -eq 1 ] ; then
175 184 F_EZ_SED_ECP_R=$(echo "$F_EZ_SED_ECP_R" | sed 's/\\n/C0673CECED2D4A8FBA90C9B92B9508A8/g')
176 185 fi
  186 +
  187 + # NOTE: Escapa valores, principalmente, para serem aplicados como
  188 + # argumentos em um comando de replace no "sed"! By Questor
177 189 F_EZ_SED_ECP_R=$(echo "$F_EZ_SED_ECP_R" | sed 's/[]\/$*.^|[]/\\&/g')
  190 +
178 191 if [ ${DONT_ECP_SQ} -eq 0 ] ; then
179 192 F_EZ_SED_ECP_R=$(echo "$F_EZ_SED_ECP_R" | sed "s/'/\\\x27/g")
180 193 fi
... ... @@ -197,10 +210,15 @@ f_ez_sed() {
197 210 REPLACE. Padrão 0.
198 211 DONT_ECP_NL (Optional[int]): 1 - Não "escapa" "\n" (quebra de
199 212 linha); 0 - "Escapa" "\n". Padrão 1.
  213 + NOTE: Para os casos onde "\n" faz parte dos argumentos. Nesses casos
  214 + os argumentos possuem "\n" em vez de quebras de linha efetivamente. Se
  215 + desabilitado "\n" será tratado como texto e não será convertido para
  216 + quebras;
200 217 REMOVE_LN (Optional[int]): 1 - Remove a linha que possui o
201 218 valor em TARGET; 0 - Faz o replace convencional. Padrão 0.
202 219 NTH_OCCUR (Optional[int]): Executará a operação escolhida
203   - apenas sobre a ocorrência indicada; Se -1, não executa. Padrão -1.
  220 + apenas sobre a ocorrência indicada (utilize 2 para fazer replace apenas
  221 + na 2 ocorrencia, por exemplo); Se -1, não executa. Padrão -1.
204 222 '
205 223  
206 224 FILE=$3
... ... @@ -602,8 +620,8 @@ F_GET_STDERR_R=""
602 620 F_GET_STDOUT_R=""
603 621 F_GET_EXIT_CODE_R=0
604 622 f_get_stderr_stdout() {
605   - : 'Executar um comando e colocar a saída de stderr e stdout nas
606   - variáveis "F_GET_STDERR_R" e "F_GET_STDOUT_R"!.
  623 + : 'Executar um comando e capturar a saída de stderr, stdout e
  624 + o "exit code".
607 625  
608 626 Args:
609 627 CMD_TO_EXEC (str): Comando a ser executado.
... ... @@ -611,6 +629,7 @@ f_get_stderr_stdout() {
611 629 Returns:
612 630 F_GET_STDERR_R (str): Saída para stderr.
613 631 F_GET_STDOUT_R (str): Saída para stdout.
  632 + F_GET_EXIT_CODE_R (int): Código de saída.
614 633 '
615 634  
616 635 CMD_TO_EXEC=$1
... ... @@ -618,9 +637,9 @@ f_get_stderr_stdout() {
618 637 F_GET_STDOUT_R=""
619 638 unset t_std t_err t_ret
620 639 eval "$( eval "$CMD_TO_EXEC" 2> >(t_err=$(cat); typeset -p t_err) > >(t_std=$(cat); typeset -p t_std); t_ret=$?; typeset -p t_ret )"
621   - F_GET_EXIT_CODE_R=$t_ret
622 640 F_GET_STDERR_R=$t_err
623 641 F_GET_STDOUT_R=$t_std
  642 + F_GET_EXIT_CODE_R=$t_ret
624 643 }
625 644  
626 645 YES_NO_R=0
... ... @@ -883,6 +902,8 @@ f_split() {
883 902 TARGET_P=$(echo "$TARGET_P" | awk 'BEGIN {RS="dn" } {gsub("\n","£§¢¬¨") ;printf $0 }')
884 903 fi
885 904  
  905 + # TODO: Talvez se remover as aspas do "${TARGET_P}" logo abaixo resolva o
  906 + # problema da necessidade de usar o workaround "£§¢¬¨"! By Questor
886 907 SPLIT_NOW=$(awk -F"$DELIMITER_P" '{for(i=1;i<=NF;i++){printf "%s\n", $i}}' <<<"${TARGET_P}")
887 908  
888 909 while IFS= read -r LINE_NOW; do
... ... @@ -1496,6 +1517,28 @@ f_procs_qtt() {
1496 1517 fi
1497 1518 }
1498 1519  
  1520 +F_GET_UUID_R=""
  1521 +f_get_uuid() {
  1522 + : 'Gerar e retornar um UUID.
  1523 +
  1524 + Args:
  1525 + REM_DASH_P (Optional[int]): 0 - Não remove os "-" (traços); 1 -
  1526 + Remove os "-" (traços). Padrão 0.
  1527 +
  1528 + Returns:
  1529 + F_GET_UUID_R (str): UUID gerado.
  1530 + '
  1531 +
  1532 + REM_DASH_P=$1
  1533 + if [ -z "$REM_DASH_P" ] ; then
  1534 + REM_DASH_P=0
  1535 + fi
  1536 + F_GET_UUID_R=$(cat /proc/sys/kernel/random/uuid)
  1537 + if [ ${REM_DASH_P} -eq 1 ] ; then
  1538 + F_GET_UUID_R="${F_GET_UUID_R//-}"
  1539 + fi
  1540 +}
  1541 +
1499 1542 # < --------------------------------------------------------------------------
1500 1543  
1501 1544 # > --------------------------------------------------------------------------
... ...
install.bash
... ... @@ -108,8 +108,12 @@ INSTRUCT_F=&quot;&quot;
108 108  
109 109 # < --------------------------------------------------------------------------
110 110  
  111 +# NOTE: A razão para a existência dessas variáveis é "abistrair" o
  112 +# funcionamento de "f_about_distro" que obtêm informações a partir de
  113 +# dados da própria distro e portanto sujeito a variações! By Questor
111 114 DISTRO_TYPE=""
112 115 DISTRO_NAME=""
  116 +
113 117 # > -----------------------------------------
114 118 # Checar se a distro é compatível!
115 119  
... ... @@ -265,11 +269,11 @@ if [[ &quot;$DISTRO_TYPE&quot; == &quot;RH&quot; ]] ; then
265 269 EZ_I_SKIP_ON_V=0
266 270 f_open_section
267 271 f_div_section
268   - f_yes_no "Disable SElinux (use "y" if you never did it)?"
  272 + f_yes_no "Disable SElinux (use \"y\" if you never did it)?"
269 273 if [ ${YES_NO_R} -eq 1 ] ; then
270 274 setenforce 0
271 275  
272   - # NOTE: As condições abaixo visam evitar que o arquivo seja
  276 + # NOTE: As condições abaixo visam evitar que o arquivo seja
273 277 # desnecessariamente e erroneamente modificado! By Questor
274 278 EZ_I_SKIP_ON_V=$FAST_INST
275 279 f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!"
... ... @@ -432,18 +436,16 @@ f_svc_helper() {
432 436 SVC_HLP_IN_SILENCE (Optional[int]): 1 - Sem saída para o terminal;
433 437 0 - Com saída para o terminal. Padrão 0.
434 438 '
435   -
436 439 SVC_HLP_NM_P=$1
437 440 SVC_HLP_CMD_P=$2
438   -
439 441 SVC_HLP_IN_SILENCE=$3
440 442 if [ -z "$SVC_HLP_IN_SILENCE" ] ; then
441 443 SVC_HLP_IN_SILENCE=0
442 444 fi
  445 + SVC_HLP_SILENCE_CMD=""
443 446 if [ ${SVC_HLP_IN_SILENCE} -eq 1 ] ; then
444 447 SVC_HLP_SILENCE_CMD=" &>/dev/null"
445 448 fi
446   -
447 449 if [[ "$DISTRO_TYPE" == "RH" ]] ; then
448 450 eval "systemctl $SVC_HLP_CMD_P $SVC_HLP_NM_P.service$SVC_HLP_SILENCE_CMD"
449 451 elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
... ...