Commit 7b4367013335cb4ee12f18d1983ffb1010a732ee
1 parent
af8a83ec
Exists in
master
Atualização da versão! Melhorias e correções no processo de instalação! By Questor
Showing
4 changed files
with
57 additions
and
17 deletions
Show diff stats
.directory
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="" |
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 [[ "$DISTRO_TYPE" == "RH" ]] ; 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 | ... | ... |