-
Notifications
You must be signed in to change notification settings - Fork 9
plelib
PhilippeLeroux edited this page Oct 9, 2018
·
9 revisions
-
plelib.sh last modified : 08/10/2018
-
Public functions
- Public function set_terminal_title
- Public function move_log_to_server
- Public function ple_enable_log
- Public function clean_log_file
- Public function hide_cursor
- Public function show_cursor
- Public function term_cols
- Public function must_be_executed_on_server
- Public function must_be_user
- Public function error
- Public function warning
- Public function debug
- Public function info
- Public function line_separator
- Public function LN
- Public function ask_for
- Public function confirm_or_exit
- Public function replace_paths_by_shell_vars
- Public function fake_exec_cmd
- Public function unquote
- Public function exec_cmd
- Public function add_dynamic_cmd_param
- Public function exec_dynamic_cmd
- Public function exit_if_file_not_exists
- Public function exit_if_dir_not_exists
- Public function update_variable
- Public function remove_variable
- Public function exit_if_param_undef
- Public function exit_if_param_invalid
- Public function double_symbol_percent
- Public function escape_symbol_nl
- Public function escape_2xquotes
- Public function escape_slash
- Public function escape_anti_slash
- Public function to_upper
- Public function to_lower
- Public function initcap
- Public function fill
- Public function pause_in_secs
- Public function timing
- Public function script_start
- Public function script_stop
- Public function compute
- Public function fmt_seconds
- Public function fmt_number
- Public function to_mb
- Public function to_bytes
- Public function fmt_bytes_2_better
- Public function is_number
- Public function command_exists
- Public function rpm_update_available
- Public function get_os_memory_mb
- Public function notify
-
Private functions
- Private function enable_markers
- Private function disable_markers
- Private function clean_plelib_log_file
- Private function ctrl_c
- Private function my_echo
- Private function simplify_cmd
- Private function get_tt
- Private function shorten_command
- Private function exists_var
- Private function change_value
- Private function add_new_variable
- Private function test_pause
- Private function get_initiator_for
-
Public functions
- Publics functions : 53
- Undocumented functions : 0
- Privates functions : 13
$1 title or default
Si le script est lancé par l'utilisateur oracle, la log, déclenchée par
ple_enable_log est copié dans ~/log
$1 nom de la log sans le chemin (facultatif), par défaut nom du script appelant
ou/et -params $*
Exemple : ple_enable_log -params $*
Remove all visual makers from file $1
Hide cursor
Show cursor
print to stdout number of col for the terminal. if no terminal print 80
$1 server name
exit 1 if curent server name is different.
Variable $ME must be initialised with $0 (name of the script)
$1 user list (separator space) Ex : "root" or "root grid"
exit 1 if curent user name is different.
Variable $ME must be initialised with $0 (name of the script)
Print error message
Print warning message
Affiche les informations de debug.
Actif uniquement si la variable DEBUG_MODE==ENABLE est définie.
Fonctionne sur le même principe que info.
Print normal message
Options
-n no new line
-f don't print info marker. (Useful after info -n)
line_separator [car]
Fill line with charactere = or specified charactere
New line
Paramètres :
-reply_list="y n" liste des réponses séparées par un espace, par défaut "y n"
* Pour la touche 'return' utiliser -reply_list=CR
* Maximum 3 réponses possibles.
-print="y/n ?" les réponses à afficher, par défaut "y/n ?"
Les autres paramètres forment la question.
Codes retours :
0 pour la première réponse.
1 pour la seconde réponse.
3 pour la troisième réponse.
Pour les paramètres voir ask_for
Si l'utilisateur répond non (la 2ième réponse) le script est terminé par un exit 1
Modifie '$@' et affiche le résultat sur stdout.
Remplace le chemin correspondand à HOME par $HOME
Remplace le chemin correspondand à TNS_ADMIN par $TNS_ADMIN
Remplace le chemin correspondand à ORACLE_HOME par $ORACLE_HOME
Remplace le chemin correspondand à ORACLE_BASE par $ORACLE_BASE
Fake exec_cmd command
Command printed but not executed.
return :
1 if EXEC_CMD_ACTION = NOP
0 if EXEC_CMD_ACTION = EXEC
$@ string
print to stdout string without quotes ( ' or " )
exec_cmd
if EXEC_CMD_ACTION
== NOP : command is printed (No Operation)
== EXEC : command is printed & executed
If command failed stop the scripts.
Parameters:
-f EXEC_CMD_ACTION is ignored.
-c continue on error.
-ci like -c.
-h hide command except on error.
-hf like -h.
-novar path not replaced by variable name.
Show execution time after PLE_SHOW_EXECUTION_TIME_AFTER seconds
Les paramètres -ci et -hf ne sont plus pris en compte (je ne sais pas pourquoi)
mais ils sont encore utilisés dans plusieurs scripts. Leurs effets étaient
uniquement sur l'affichage.
En regardant l'historique git, les actions de ces paramètres ont disparus il
4 mois (date du reset du repository) donc je ne sais pas vraiment ce qui
c'est passé avec ces paramètres.
Morale de l'histoire ne jamais faire de reset de dépôt :(
[-nvsr] No Var Shell Replacement
$@ parameter to add.
run command '$@' with parameters define by add_dynamic_cmd_param
[-confirm] a prompt is printed to confirm or not execution.
[-c] continue on error.
exit_if_file_not_exists <name> [message]
if file <name> not exists, script aborted.
Print [message] if specified.
exit_if_dir_not_exists <name> [message]
if directory <name> not exits, script aborted.
Print [message] if specified.
update_variable <var> <value> <file>
Update variable <var> from file <file> with value <value>
If variable doesn't exist, it's added.
If value = empty reset value but not remove variable.
Format ^var\s*=\s*value
If file doesn't exist script aborted.
remove_variable <var> <file>
Remove variable <var> from file <file>
Format ^var\s*=.*
If file doesn't exist script aborted.
exit_if_param_undef <var> [message]
Script aborted if var == undef or == -1 or empty
exit_if_param_invalid var_name val_list [message]
Script aborted if var
= undef or -1
not in the list val_list
Double symbol % from $@.
Escape \n from $@
Escape " from $@
Escape / from $@
Escape \ from $@
Upper case "$@"
Lower case "$@"
Upper case the first caractere of $1
fill <car> <#>
Print to stdout a buffer filled with #characteres car
pause_in_secs <seconds>
Fait une pause de <seconds> secondes.
Le décompte du temps écoulé sera affiché à la position courante du curseur.
Retourne la longueur utilisée pour afficher le décompte ce qui permet
d'effacer l'affichage.
Temporisation pendant $1 secondes
$1 temps en secondes
$2 msg par défaut pas de message.
script_start
A appelé en début de script.
script_stop <nom du script>
$1 est le nom du script
$@ les autres paramètres sont des messages
Affiche le temps écoulé depuis le dernier appel à script_start
Doit être appelé en fin de script
Eval an arithmetic expression
Flags
-l# : use real numbers with # number decimals
-i : remove all decimals
formate $1 seconds to the better format
Format number $1 english or french, use LANG to define the format.
Convert $1 in Mb
Last digits is the unit : G, Gb, M, Mb, Kb or K, b or B
Convert value $1 to bytes
Units can be b,k,m or g (or upper case)
Convert value $1 to better.
Units can be b,k,m or g (or upper case)
1024K == 1Mb
1024M == 1Gb
$1 variable value
return 0 if is a number, else return 1
return 0 if cmd $1 exists else return 1
return 0 if rpm update available, else return 1
[$1 -show] show all update
check update on server $1 or $2 or local server if server name is missing.
print to stdout total os memory
[$1] -t# '#' is time out in ms, default 5s (5000ms)
$1 or $2 message to notify (message is also displayed to stdout)
Work if notify-send exists
Active les effets visuels couleurs et autres.
Désactive les effets visuels couleurs et autres.
Remove all visual makers for log file generate by plelib
Show cursor on Ctrl+c
Used by fonctions info, warning and error.
Action depand of PLELIB_OUTPUT
DISABLE : no visual effects.
ENABLE : visual effects
FILE : write into $PLELIB_LOG_FILE without any effects and canal 1 with visual effects.
Convertie les tabulations et supprime les espaces en trop de "$@"
Affiche sur stdout le timestamp à utiliser pour l'exécution d'une commande.
Si la longueur d'affichage change adapter la variable ple_param_margin
$1|$@ commande, est utilisé par la fonction exec_cmd.
Si la commande utilise ssh|sudo|su affiche sur stdout la commande appelée.
Test if a variable exists, format ^vars{0,}=s{0,}value
1 variable name
2 file name
change_value <var> <value> <file>
Format ^var\s*=\s*value
add_new_variable <var> <value> <file>
Format : var=value
If <value> == empty no value specified.
Sert pour le debuggage.
Si des paramètres sont passés il sont affiché comme un message.
Pour que la fonction soit active il faut positionner la variable PAUSE à ON
$1 message (optionnel)
get_initiator_for <db> <#node>
return initiator name for <db> and node <#node>