fix prompt IFS
This commit is contained in:
+7
-4
@@ -17,10 +17,13 @@ function __prompt_command {
|
|||||||
local PUSHED_NEEDED_SYMBOL='⥱'
|
local PUSHED_NEEDED_SYMBOL='⥱'
|
||||||
local TAG_NEEDED_SYMBOL='⤽'
|
local TAG_NEEDED_SYMBOL='⤽'
|
||||||
|
|
||||||
|
local previous_IFS="$IFS"
|
||||||
|
|
||||||
# set xterm title
|
# set xterm title
|
||||||
echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"
|
echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"
|
||||||
|
|
||||||
PS1=''
|
PS1=''
|
||||||
|
IFS=' '
|
||||||
|
|
||||||
if [[ -n ${container_hostname:-} ]]; then
|
if [[ -n ${container_hostname:-} ]]; then
|
||||||
PS1+="${Gra}[LXC:${R}"
|
PS1+="${Gra}[LXC:${R}"
|
||||||
@@ -111,7 +114,7 @@ function __prompt_command {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
PS1+=" $PROMPT ${R}"
|
PS1+=" $PROMPT ${R}"
|
||||||
|
IFS="$previous_IFS"
|
||||||
}
|
}
|
||||||
|
|
||||||
function __vte_osc7 {
|
function __vte_osc7 {
|
||||||
@@ -221,9 +224,9 @@ alias l=ls
|
|||||||
alias cd..='cd ..'
|
alias cd..='cd ..'
|
||||||
alias ..=cd..
|
alias ..=cd..
|
||||||
|
|
||||||
alias grep='grep $COLOR_OPTIONS'
|
alias grep='grep $COLOR_OPTIONS '
|
||||||
alias fgrep='fgrep $COLOR_OPTIONS'
|
alias fgrep='fgrep $COLOR_OPTIONS '
|
||||||
alias egrep='egrep $COLOR_OPTIONS'
|
alias egrep='egrep $COLOR_OPTIONS '
|
||||||
|
|
||||||
alias transfer_cp='rsync -a --info=progress2 --no-inc-recursive'
|
alias transfer_cp='rsync -a --info=progress2 --no-inc-recursive'
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,39 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -Eeuo pipefail
|
# CONSTANTS
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# FUNCTIONS
|
||||||
|
|
||||||
|
function no_more_skeleton {
|
||||||
|
[[ -e /etc/skel/.bashrc ]] && rm /etc/skel/.bashrc && echo "skeleton .bashrc removed!"
|
||||||
|
}
|
||||||
|
|
||||||
|
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 "$MIAOU_BASH_DIR/$basefile" "$i"
|
||||||
|
fi
|
||||||
|
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
|
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 1
|
||||||
|
|
||||||
readonly OPT_MIAOU_DIR='/opt/miaou-bash'
|
no_more_skeleton
|
||||||
|
predefine_config_files
|
||||||
#remove /etc/skel/.bashrc
|
bin_miaou_bash
|
||||||
if [ -e /etc/skel/.bashrc ]; then
|
|
||||||
rm /etc/skel/.bashrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
readonly ORIGINAL="ORIGINAL"
|
|
||||||
declare -a arr=(/etc/bash.bashrc /etc/inputrc /etc/vim/vimrc)
|
|
||||||
|
|
||||||
for i in "${arr[@]}"; do
|
|
||||||
if [[ -f "$i" ]] && [[ ! -f "$i.$ORIGINAL" ]]; then
|
|
||||||
mv "$i" "$i.$ORIGINAL"
|
|
||||||
basefile=$(basename "$i")
|
|
||||||
ln -s "$OPT_MIAOU_DIR/$basefile" "$i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
## CONSTANTS
|
## CONSTANTS
|
||||||
|
|
||||||
readonly CURDIR=$PWD
|
readonly CURDIR=$PWD
|
||||||
readonly REQUIRED_PKGS=(file git bc vim jq bat gum)
|
readonly REQUIRED_PKGS=(file git bc vim jq)
|
||||||
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
|
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
|
||||||
|
|
||||||
## FUNCTIONS
|
## FUNCTIONS
|
||||||
|
|||||||
Executable
+21
@@ -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
|
||||||
Executable
+102
@@ -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
|
||||||
Reference in New Issue
Block a user