5 changed files with 162 additions and 20 deletions
@ -1,23 +1,39 @@ |
|||
#!/bin/bash |
|||
|
|||
set -Eeuo pipefail |
|||
# CONSTANTS |
|||
|
|||
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 1 |
|||
|
|||
readonly OPT_MIAOU_DIR='/opt/miaou-bash' |
|||
MIAOU_BASH_DIR=${MIAOU_BASH_DIR:-/opt/miaou-bash} |
|||
ORIGINAL="ORIGINAL" |
|||
PREDEFINED_CONFIG_FILES=(/etc/bash.bashrc /etc/inputrc /etc/vim/vimrc) |
|||
readonly MIAOU_BASH_DIR ORIGINAL |
|||
|
|||
#remove /etc/skel/.bashrc |
|||
if [ -e /etc/skel/.bashrc ]; then |
|||
rm /etc/skel/.bashrc |
|||
fi |
|||
# FUNCTIONS |
|||
|
|||
readonly ORIGINAL="ORIGINAL" |
|||
declare -a arr=(/etc/bash.bashrc /etc/inputrc /etc/vim/vimrc) |
|||
function no_more_skeleton { |
|||
[[ -e /etc/skel/.bashrc ]] && rm /etc/skel/.bashrc && echo "skeleton .bashrc removed!" |
|||
} |
|||
|
|||
for i in "${arr[@]}"; do |
|||
function predefine_config_files { |
|||
for i in "${PREDEFINED_CONFIG_FILES[@]}"; do |
|||
if [[ -f "$i" ]] && [[ ! -f "$i.$ORIGINAL" ]]; then |
|||
mv "$i" "$i.$ORIGINAL" |
|||
basefile=$(basename "$i") |
|||
ln -s "$OPT_MIAOU_DIR/$basefile" "$i" |
|||
ln -s "$MIAOU_BASH_DIR/$basefile" "$i" |
|||
fi |
|||
done |
|||
done |
|||
} |
|||
|
|||
function bin_miaou_bash { |
|||
[[ ! -e /usr/bin/miaou-bash ]] && |
|||
ln -s "$MIAOU_BASH_DIR/bin/miaou-bash" /usr/bin/ && |
|||
echo "miaou-bash globally defined!" |
|||
} |
|||
|
|||
# MAIN |
|||
|
|||
set -TEeu -o pipefail |
|||
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 1 |
|||
|
|||
no_more_skeleton |
|||
predefine_config_files |
|||
bin_miaou_bash |
|||
@ -0,0 +1,21 @@ |
|||
#!/usr/bin/env miaou-bash |
|||
#!/usr/bin/env bash |
|||
|
|||
function blabla { |
|||
echo IN blabla OUT |
|||
>&2 echo stderr from utility |
|||
# . lib/not_found_again.bash |
|||
# lib/not_found_again.bash |
|||
suite |
|||
} |
|||
|
|||
function suite { |
|||
command_not_found |
|||
echo $nope |
|||
exit 10 # youpi |
|||
return 7 |
|||
return |
|||
exit |
|||
} |
|||
|
|||
blabla |
|||
@ -0,0 +1,102 @@ |
|||
#!/usr/bin/env miaou-bash |
|||
|
|||
# CONSTANTS |
|||
|
|||
BASEDIR=$(dirname "$0") |
|||
readonly BASEDIR |
|||
|
|||
# FUNCTIONS |
|||
|
|||
function F2 { |
|||
echo "stdout A" |
|||
# echo toto >>/tmp/toto |
|||
return |
|||
>&2 echo "This is stderr" |
|||
|
|||
blabla |
|||
$nope |
|||
exit 6 |
|||
grep titi toto |
|||
echo "stdout B" |
|||
echo "stdout C" |
|||
# command_not_found |
|||
} |
|||
|
|||
function F1 { |
|||
echo F1 |
|||
F2 |
|||
} |
|||
|
|||
function main { |
|||
F1 |
|||
F3 |
|||
echo before subshell |
|||
echo "here in subshell $(grep titi $0)" |
|||
echo NO MORE |
|||
|
|||
result=$(grep titi $0) |
|||
[[ "$result" -ne 0 ]] && echo true |
|||
# grep titi nope |
|||
>&2 echo some trace in stderr1 |
|||
"$BASEDIR/extra/library.bash" |
|||
. "$BASEDIR/lib/utility.bash" |
|||
# . not_found/not_found.bash |
|||
# echo "here in subshell $(grep titi nope)" |
|||
# ls -l nope |
|||
>&2 echo some trace in stderr2 |
|||
} |
|||
|
|||
function F3 { |
|||
echo F3 |
|||
return 0 |
|||
} |
|||
|
|||
function usage { |
|||
echo "USAGE: $0 <success|unbound-variable>" |
|||
echo -e "\trun case scenario which performs various bash statements and mostly fails" |
|||
echo -e "\tthese case scenarii helps testing the miaou-bash script" |
|||
} |
|||
|
|||
function do_success { |
|||
echo SUCCESS |
|||
} |
|||
|
|||
function do_unbound_variable { |
|||
a=5 |
|||
echo "a=${a}" |
|||
echo "b=${b}" |
|||
} |
|||
|
|||
function introspect_scenarii { |
|||
mapfile -t SCENARII <<<"$(compgen -A function | grep ^do_)" |
|||
} |
|||
|
|||
# MAIN |
|||
[[ $# -eq 0 ]] && >&2 echo 'arg1 expected!' && usage && exit 1 |
|||
|
|||
scenario="$1" |
|||
shift |
|||
mapfile -t scenarii <<<"$(compgen -A function | grep ^do_)" |
|||
|
|||
args=("$@") |
|||
|
|||
echo "scenarii = ${scenarii[@]}" |
|||
exit 0 |
|||
|
|||
echt "start of useless $0 $* ($# args)" |
|||
if grep titi nope 2>/dev/null; then |
|||
echo OK |
|||
else |
|||
echo not found but ok |
|||
fi |
|||
if grep titi "$BASEDIR/lib/utility.bash"; then |
|||
echo OK |
|||
else |
|||
echo not found but ok |
|||
fi |
|||
echo question?: |
|||
# read -r answer |
|||
# echo "$answer" |
|||
echo suite |
|||
main |
|||
echo end of useless |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue