Browse Source

fix return 0 show error_box

main
pvincent 3 days ago
parent
commit
3f56f022e4
  1. 3
      bin/miaou-bash
  2. 2
      etc/vim/vimrc.local
  3. 4
      install.sh
  4. 37
      lib/init.bash
  5. 1
      test/miaou-bash.test.bash
  6. 9
      test/stub/scenario.bash
  7. 19
      tools/smart_write

3
bin/miaou-bash

@ -81,7 +81,6 @@ function on_return {
print_miaou_error "${BASH_SOURCE[1]}" "${BASH_LINENO[0]}" "${failure_code}" "${failure_type}" "${failure_payload}" print_miaou_error "${BASH_SOURCE[1]}" "${BASH_LINENO[0]}" "${failure_code}" "${failure_type}" "${failure_payload}"
miaou_debug "<on_return code=$failure_code payload=$failure_payload/>" miaou_debug "<on_return code=$failure_code payload=$failure_payload/>"
fi fi
true
} }
# overridden function which permits backtracing of the original `exit` statement # overridden function which permits backtracing of the original `exit` statement
@ -568,7 +567,7 @@ function on_exit {
if ! is_true $CHILD_PROCESS; then if ! is_true $CHILD_PROCESS; then
2>&3 >&3 dump_stderr 2>&3 >&3 dump_stderr
if [[ -v failure_type ]]; then
if [[ -v failure_type && $failure_code -gt 0 ]]; then
2>&3 >&4 dump_failure 2>&3 >&4 dump_failure
if [[ -v error_source ]]; then if [[ -v error_source ]]; then
2>&3 >&4 dump_stacktrace 2>&3 >&4 dump_stacktrace

2
etc/vim/vimrc.local

@ -1,4 +1,4 @@
let additionals = [ "core", "miaou", "rookie", "azerty" ]
let additionals = [ "core", "miaou", "rookie" ]
for additional in additionals for additional in additionals
let s:vimrc_path = "/etc/vim/vimrc." . additional let s:vimrc_path = "/etc/vim/vimrc." . additional
if filereadable(s:vimrc_path) if filereadable(s:vimrc_path)

4
install.sh

@ -32,9 +32,9 @@ function bootstrap {
[[ "$UID" -ne 0 ]] && echo 'root privilege required' && exit 1 [[ "$UID" -ne 0 ]] && echo 'root privilege required' && exit 1
if [[ -v MIAOU_BASH_DIR ]]; then if [[ -v MIAOU_BASH_DIR ]]; then
miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash"
. bin/miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash"
else else
bootstrap bootstrap
miaou-bash "$MIAOU_BASH_DIR/lib/init.bash"
. bin/miaou-bash "$MIAOU_BASH_DIR/lib/init.bash"
echo "miaou-bash successfully installed" echo "miaou-bash successfully installed"
fi fi

37
lib/init.bash

@ -2,6 +2,16 @@
# CONSTANTS # CONSTANTS
readonly AZERTY_ZONES=(
'Europe/Paris'
'Indian/Reunion2'
'Indian/Mayotte'
'America/Cayenne'
'America/Guadeloupe'
'America/Martinique'
'Pacific/Noumea'
'Pacific/Tahiti'
)
readonly REQUIRED_PKGS=(file jq vim git) readonly REQUIRED_PKGS=(file jq vim git)
readonly BACKUP='ORIGINAL' readonly BACKUP='ORIGINAL'
@ -38,20 +48,41 @@ function link_etc {
fi fi
} }
function predefine_config_files {
function link_config_files {
link_etc bash.bashrc link_etc bash.bashrc
link_etc inputrc link_etc inputrc
link_etc vimrc.azerty vim
link_etc vimrc.core vim link_etc vimrc.core vim
link_etc vimrc.local vim link_etc vimrc.local vim
link_etc vimrc.miaou vim link_etc vimrc.miaou vim
link_etc vimrc.rookie vim link_etc vimrc.rookie vim
} }
function in_azerty_zone {
local zone
zone=$(readlink /etc/localtime)
zone="${zone#/usr/share/zoneinfo/}" # remove prefix
for i in "${AZERTY_ZONES[@]}"; do
[[ "$zone" == "$i" ]] && return 0
done
return 1
}
function link_azerty {
if in_azerty_zone; then
echo "AZERTY zone"
else
echo "NO AZERTY"
fi
echo COUCOU
# link_etc vimrc.azerty vim
# . "$MIAOU_BASH_DIR"/tools/smart_write 'let additionals = .*' 'let additionals = [ "core", "miaou", "rookie", "azerty" ]' /etc/vim/vimrc.local
}
# MAIN # MAIN
[ "$UID" -ne 0 ] && echo 'root privilege required' && exit 1 [ "$UID" -ne 0 ] && echo 'root privilege required' && exit 1
source "$MIAOU_BASH_DIR/lib/functions.bash" source "$MIAOU_BASH_DIR/lib/functions.bash"
required_packages required_packages
no_more_skeleton no_more_skeleton
predefine_config_files
link_config_files
link_azerty

1
test/miaou-bash.test.bash

@ -119,6 +119,7 @@ TIMEFORMAT=$'\nelapsed: %Rs'
time { time {
assert success assert success
assert exit_0 assert exit_0
assert return_conditional
assert_grep success_with_args 'count args: 2' -- 'A B' C assert_grep success_with_args 'count args: 2' -- 'A B' C
fail_type subshell_term SUBSHELL_ERROR fail_type subshell_term SUBSHELL_ERROR

9
test/stub/scenario.bash

@ -58,6 +58,15 @@ function do_return {
should_return should_return
} }
function do_return_conditional {
if call_function_which_will_return; then
echo SHOULD NOT APPEAR
else
echo return is: $?
fi
echo SUCCESS
}
function do_unbound_associative { function do_unbound_associative {
declare -A associative declare -A associative
associative['A']='Abc' associative['A']='Abc'

19
tools/smart_write

@ -0,0 +1,19 @@
#!/usr/bin/env miaou-bash
function usage {
builtin echo "Usage: $(basename "$0") <REGEX> <STRING> <FILE>"
}
[[ $# -ne 3 ]] && usage && exit 2
REGEX=$1
STRING=$2
FILE=$3
if ! grep -Pq "$REGEX" "$FILE"; then
builtin echo -e "$STRING" >>"$FILE"
echo 'appended'
else
sed -Ei "s|$REGEX|$STRING|g" "$FILE"
echo 'replaced'
fi
Loading…
Cancel
Save