5 changed files with 162 additions and 20 deletions
@ -1,23 +1,39 @@ |
|||||
#!/bin/bash |
#!/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 |
if [[ -f "$i" ]] && [[ ! -f "$i.$ORIGINAL" ]]; then |
||||
mv "$i" "$i.$ORIGINAL" |
mv "$i" "$i.$ORIGINAL" |
||||
basefile=$(basename "$i") |
basefile=$(basename "$i") |
||||
ln -s "$OPT_MIAOU_DIR/$basefile" "$i" |
|
||||
|
ln -s "$MIAOU_BASH_DIR/$basefile" "$i" |
||||
fi |
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