diff --git a/.chezmoi.toml.tmpl b/.chezmoi.toml.tmpl new file mode 100644 index 0000000..69af6b3 --- /dev/null +++ b/.chezmoi.toml.tmpl @@ -0,0 +1,5 @@ +{{- $name := promptString "name" -}} +{{- $email := promptString "email" -}} +[data] + name = "{{ $name }}" + email = "{{ $email }}" diff --git a/dot_gitconfig.tmpl b/dot_gitconfig.tmpl new file mode 100644 index 0000000..71e1924 --- /dev/null +++ b/dot_gitconfig.tmpl @@ -0,0 +1,14 @@ +# This is Git's per-user configuration file. +[user] +# Please adapt and uncomment the following lines: + name = {{ .name }} + email = {{ .email }} + +[alias] + graph = log --graph --pretty=format:'%Cred%h %Creset-%C(yellow)%d%Creset %s %Cgreen(%cd) %C(blue)<%an>%Creset' --abbrev-commit --date=relative -30 + + +[core] + editor = vim + + diff --git a/dot_solarize_colors b/dot_solarize_colors new file mode 100644 index 0000000..61979f7 --- /dev/null +++ b/dot_solarize_colors @@ -0,0 +1,42 @@ +# +# Solarized color definitions. +# see https://ethanschoonover.com/solarized/ +# + +# Foreground +sol_base03='\[\e[38;5;234m\]' #002b36 8/4 brblack +sol_base02='\[\e[38;5;235m\]' #073642 0/4 black +sol_base01='\[\e[38;5;240m\]' #586e75 10/7 brgreen +sol_base00='\[\e[38;5;241m\]' #657b83 11/7 bryellow +sol_base0='\[\e[38;5;244m\]' #839496 12/6 brblue +sol_base1='\[\e[38;5;245m\]' #93a1a1 14/4 brcyan +sol_base2='\[\e[38;5;254m\]' #eee8d5 7/7 white +sol_base3='\[\e[38;5;230m\]' #fdf6e3 15/7 brwhite +sol_yellow='\[\e[38;5;136m\]' #b58900 3/3 yellow +sol_orange='\[\e[38;5;166m\]' #cb4b16 9/3 brred +sol_red='\[\e[38;5;160m\]' #dc322f 1/1 red +sol_magenta='\[\e[38;5;125m\]' #d33682 5/5 magenta +sol_violet='\[\e[38;5;61m\]' #6c71c4 13/5 brmagenta +sol_blue='\[\e[38;5;33m\]' #268bd2 4/4 blue +sol_cyan='\[\e[38;5;37m\]' #2aa198 6/6 cyan +sol_green='\[\e[38;5;64m\]' #859900 2/2 green + +# Background +sol_bg_base03='\e[48;5;234m\]' #002b36 8/4 brblack +sol_bg_base02='\e[48;5;235m\]' #073642 0/4 black +sol_bg_base01='\e[48;5;240m\]' #586e75 10/7 brgreen +sol_bg_base00='\e[48;5;241m\]' #657b83 11/7 bryellow +sol_bg_base0='\e[48;5;244m\]' #839496 12/6 brblue +sol_bg_base1='\e[48;5;245m\]' #93a1a1 14/4 brcyan +sol_bg_base2='\e[48;5;254m\]' #eee8d5 7/7 white +sol_bg_base3='\e[48;5;230m\]' #fdf6e3 15/7 brwhite +sol_bg_yellow='\e[48;5;136m\]' #b58900 3/3 yellow +sol_bg_orange='\e[48;5;166m\]' #cb4b16 9/3 brred +sol_bg_red='\e[48;5;160m\]' #dc322f 1/1 red +sol_bg_magenta='\e[48;5;125m\]' #d33682 5/5 magenta +sol_bg_violet='\e[48;5;61m\]' #6c71c4 13/5 brmagenta +sol_bg_blue='\e[48;5;33m\]' #268bd2 4/4 blue +sol_bg_cyan='\e[48;5;37m\]' #2aa198 6/6 cyan +sol_bg_green='\e[48;5;64m\]' #859900 2/2 green + +bg_system="\[\e[48;5;0m\]" diff --git a/dot_solarize_colors_base b/dot_solarize_colors_base new file mode 100644 index 0000000..57fdb8f --- /dev/null +++ b/dot_solarize_colors_base @@ -0,0 +1,42 @@ +# +# Solarized color definitions. +# see https://ethanschoonover.com/solarized/ +# + +# Foreground +sol_base03='\[\e[38;5;8m\]' #002b36 8/4 brblack +sol_base02='\[\e[38;5;0m\]' #073642 0/4 black +sol_base01='\[\e[38;5;10m\]' #586e75 10/7 brgreen +sol_base00='\[\e[38;5;11m\]' #657b83 11/7 bryellow +sol_base0='\[\e[38;5;12m\]' #839496 12/6 brblue +sol_base1='\[\e[38;5;14m\]' #93a1a1 14/4 brcyan +sol_base2='\[\e[38;5;7m\]' #eee8d5 7/7 white +sol_base3='\[\e[38;5;15m\]' #fdf6e3 15/7 brwhite +sol_yellow='\[\e[38;5;3m\]' #b58900 3/3 yellow +sol_orange='\[\e[38;5;9m\]' #cb4b16 9/3 brred +sol_red='\[\e[38;5;1m\]' #dc322f 1/1 red +sol_magenta='\[\e[38;5;5m\]' #d33682 5/5 magenta +sol_violet='\[\e[38;5;13m\]' #6c71c4 13/5 brmagenta +sol_blue='\[\e[38;5;4m\]' #268bd2 4/4 blue +sol_cyan='\[\e[38;5;6m\]' #2aa198 6/6 cyan +sol_green='\[\e[38;5;2m\]' #859900 2/2 green + +# Background +sol_bg_base03='\e[48;5;8m\]' #002b36 8/4 brblack +sol_bg_base02='\e[48;5;0m\]' #073642 0/4 black +sol_bg_base01='\e[48;5;10m\]' #586e75 10/7 brgreen +sol_bg_base00='\e[48;5;11m\]' #657b83 11/7 bryellow +sol_bg_base0='\e[48;5;12m\]' #839496 12/6 brblue +sol_bg_base1='\e[48;5;14m\]' #93a1a1 14/4 brcyan +sol_bg_base2='\e[48;5;7m\]' #eee8d5 7/7 white +sol_bg_base3='\e[48;5;15m\]' #fdf6e3 15/7 brwhite +sol_bg_yellow='\e[48;5;3m\]' #b58900 3/3 yellow +sol_bg_orange='\e[48;5;9m\]' #cb4b16 9/3 brred +sol_bg_red='\e[48;5;1m\]' #dc322f 1/1 red +sol_bg_magenta='\e[48;5;5m\]' #d33682 5/5 magenta +sol_bg_violet='\e[48;5;13m\]' #6c71c4 13/5 brmagenta +sol_bg_blue='\e[48;5;4m\]' #268bd2 4/4 blue +sol_bg_cyan='\e[48;5;37m\]' #2aa198 6/6 cyan +sol_bg_green='\e[48;5;2m\]' #859900 2/2 green + +bg_system="\[\e[48;5;0m\]" diff --git a/dot_sshrc b/dot_sshrc new file mode 100644 index 0000000..74f33ef --- /dev/null +++ b/dot_sshrc @@ -0,0 +1,272 @@ +if [ -f $HOME/.profile ]; then + source $HOME/.profile +fi + +# +# TODO: CISM Section +# +mySystem=$(uname -n) +myFQDN="$(uname -n).$(dnsdomainname)" +mySlesVersionId=$(grep PRETTY_NAME /etc/os-release) +mySlesVersion=${mySlesVersionId#*=} +mySlesVersion=${mySlesVersion//\"} + +# Debugging +if [ "$myFQDN" == "BUI-NB1207-GP.bui.materna.com" ]; then + log_info "env: $myFQDN ($myType) in $myEnv" + myType=$myFQDN + myEnv=STG + myNum=0 +else + myType=$myFQDN + myEnv=unknown + myNum=0 +fi + +function fadeIn() { + START=$1 + END=$2 + for ((i=$START; i<=$END; i++)); do + FADE="$FADE\[\e[48;5;${i}m\] " + done + FADE="$FADE \[\e[0m" +} + +function fadeOut() { + START=$1 + END=$2 + for ((i=$START; i<=$END; i--)); do + FADE="$FADE\[\e[48;5;${i}m\] " + echo -e "$FADE" + done + FADE="$FADE \[\e[0m" +} + +# CPU function +function getCPULoad { + echo $(sar -u 1 1 | awk '/^Average:/{print 100-$8}') +} +# last exit code +function lastExitCode { + local exit="$?" + local VERSION_ID=$(grep VERSION_ID /etc/os-release) + local SLES_VERSION=${VERSION_ID#*=} + local SLES_VERSION=${SLES_VERSION//\"} + + + if [ $exit != 0 ];then + # echo -e "${sol_red}!${bg_reset}" + # printf '\[\033[32m\]0_0\[\033\0m\]' + # printf '0_0 ✕' + printf '\e[38;5;160m%-5s' "✕ ❗ ($exit)" + else + # echo "OK" + # printf '^_^ ✔' + printf '✔' + fi + # printf "  $SLES_VERSION" +} + +# Solarized Theme +source $HOME/.solarize_colors_base + +bg_system="\[\e[48;5;0m\]" +bg_type="\[\e[48;5;254m\]" +bg_reset="\[\e[49m\]" + +fg_sytem="\[\e[38;5;15m\]" +fg_type="\[\e[1m\]" +fg_reset="\[\e[39m\]" + +fg_arrow1="\[\e[38;5;18m\]" +fg_arrow2="\[\e[38;5;254m\]" + +# Background by ENV +dev="22" +prod="52" +sys="94" + +case $myEnv in + DEV) + SYSTEM="Development System" + bg_system="${sol_bg_green}" + fg_system="${sol_green}" + fg_type="${sol_green}" + ;; + TST) + SYSTEM="Test System" + bg_system="${sol_bg_blue}" + fg_system="${sol_blue}" + fg_type="${sol_blue}" + ;; + PRD) + SYSTEM="Production System" + bg_system="${sol_bg_red}" + fg_system="${sol_red}" + fg_type="${sol_red}" + ;; + STG|ST2) + SYSTEM="$myEnv" + bg_system="${sol_bg_yellow}" + fg_system="${sol_yellow}" + fg_type="${sol_yellow}" + ;; + *) + echo "myEnv: $myEnv" + echo "myType: $myType" + SYSTEM="System of a Down" + bg_system="${sol_bg_magenta}" + fg_system="${sol_magenta}" + fg_type="${sol_magenta}" + ;; +esac + +bg_type="${sol_bg_base3}" +fg_arrow1="${fg_type}" +fg_arrow2="${sol_base3}" + +if [[ -z "${myType// }" ]]; then + TYPE=$(uname -n) +else +TYPE=" $myType " +fi +if [ "$myNum" != "0" ]; then + TYPE="$TYPE ($myNum)" +fi +echo "System Prompt: $SYSTEM_PROMPT" + +# SYSTEM_PROMPT="\n${bg_system}${fg_sytem}${SYSTEM} ${bg_type}${fg_arrow1}" +#  " +#                 +SYSTEM_PROMPT="\n${fg_arrow1}░▒▓${bg_system} ${fg_sytem}${SYSTEM} ${bg_type}${fg_arrow1}▓▒░" +# fadeIn 64 230 +#echo -e "$FADE" +# SYSTEM_PROMPT="\n${bg_system}${fg_sytem}${SYSTEM} $FADE" +# TYPE_PROMPT="$TYPE  [CPU: \$(getCPULoad) %] ${bg_reset}${fg_arrow2}" + +# TYPE_PROMPT="$TYPE  [\$(if [ \$? = 0 ]; then echo ${sol_red}^_^; else echo 0_0; fi)] ${bg_reset}${fg_arrow2}▓▒░" +# TYPE_PROMPT="$TYPE  \$(lastExitCode) ${bg_reset}${fg_arrow2}▓▒░" +# TYPE_PROMPT="$TYPE  \$(lastExitCode) ${fg_arrow1}  $mySlesVersion ${sol_blue}\${STY#[0-9]*.} ${bg_reset}${fg_arrow2}▇▆▅▄▃▂▁" +TYPE_PROMPT="$TYPE  \$(lastExitCode) ${fg_arrow1}  $mySlesVersion ${sol_blue}\${STY#[0-9]*.} ${bg_reset}${fg_arrow2}▓▒░" +# With CPU Load +# TYPE_PROMPT="$TYPE  [CPU: \$(getCPULoad) %] ${bg_reset}${fg_arrow2}▓▒░" + +# TYPE_PROMPT="\[\e[48;5;27;1;30m$TYPE ${bg_reset}\[\e[48;5;27m░▒▓" + +PROMPT="${SYSTEM_PROMPT} ${TYPE_PROMPT}" +DATE="\[\e[0;32m\]\d \t" +if [ "$(whoami)" = "root" ]; then + DIR="\[\e[97;49m\]\[\e[0;91;107m\] \u@\h \[\e[97;49m\]\[\e[39;49m\] in \[\e[0;32m\]\w" + # DIR="\[\e[97;49m\]▒\[\e[0;91;107m\] \u@\h \[\e[97;49m\]▒\[\e[39;49m\] in \[\e[0;32m\]\w" +else + DIR="\[\e[0;32m\]\u@\h \[\e[31m\]☆ \[\e[0;32m\]\w" +fi + +# PROMPT_COMMAND=promptcmd + +PS1="${PROMPT}\[\e[0m\] \n${DIR}\n${DATE} → \[\e[0m\]" + +echo '┌─────────────────────────────┐' +echo '│ Welcome to CISM │' +echo '└─────────────────────────────┘' + +if [ $(whoami | grep root | wc -l) == 1 ]; then + echo -e "\e[31;107m┌─────────────────────────────┐\e[0m" + echo -e "\e[31;107m│ YOU ARE ROOT, BE CAREFUL! │\e[0m" + echo -e "\e[31;107m└─────────────────────────────┘\e[0m" + + # Test mintty + echo -ne '\e]11;44,10,10\a' +else + # echo -ne '\e]11;0,30,60\a' + log_warn "TODO: background colors..." +fi + +if [ $(hostname | grep solveig | wc -l) == 1 ]; then + echo 'Welcome on solveig' + export PS1="\n\d \t ☆ \e[1;31m\]\u@\h \[\e[39m\]in \[\e[0;32m\]\w\n\[\e[0;32m\]$(git branch) → \[\e[39m\]" +elif [ $(hostname | grep openwrt | wc -l) == 1 ]; then + PS1="\e[36m \t \e[31m- \e[32m\u@\h \e[0m in \w \n \e[0;32m \$ \e[39m" +fi + +# taken from https://github.com/randomphrase/dotfiles/blob/master/sshrc +# modified to use own "HOME" +# Are we using a shared account? + + # if [[ -z "$ENVIRONMENT" ]]; then + # Use my own shell history file + # export HISTFILE=$HOME/.bash_history.$SSH_INCOMING_USER + # elif [[ "$ENVIRONMENT" == "CISM" ]]; then + if [[ -d "/home/arsystem/HOME/sgaisel/bash_history" ]]; then + export HISTFILE=/home/arsystem/HOME/sgaisel/bash_history/${USER}_$(uname -n) + log_info "using bash history $HISTFILE" + else + echo "no 'HOME' found, using standard history file" + fi + # alias tree="find ./ -type d | sed -e 's/[^-][^\/]*\//--/g;s/--/ |-/'" + # fi + + # use own vim parameters if available + # if [[ -f "$HOME/HOME/sgaisel/.vimrc" ]]; then + # echo 'using .vimrc from /home/arsystem/HOME/sgaisel' + # alias vi="vim --cmd 'set rtp^=/home/arsystem/HOME/sgaisel/.vim' -u /home/arsystem/HOME/sgaisel/.vimrc" + # fi +#fi + +# avoid '^?' in vim +# see https://vim.fandom.com/wiki/Backspace_and_delete_problems +stty erase '^?' + +# Set Title, see https://superuser.com/questions/249293/rename-tmux-window-name-to-prompt-command-ps1-or-remote-ssh-hostname +settitle() { + printf "\033k$1\033\\" +} + +# settitle "$(uname -n)" +settitle "$myEnv ($(uname -n))" + +export LS_OPTIONS='--color=auto' +eval "$(dircolors -b)" +alias ls='ls $LS_OPTIONS' + +# Some aliases to tail logfiles +alias tailMisc='tail -f /srv/CISM/log-data/CONTEXT_misc/cism-misc.log' +alias tailWS='tail -f /srv/CISM/log-data/CONTEXT_ws/cism-ws.log' +alias tailGraph='tail -f /srv/CISM/log-data/CONTEXT_graph/cism-graph.log' +alias tailBB='tail -f /srv/CISM/log-data/CONTEXT_bb/cism-bb.log' +alias tailKM='tail -f /srv/CISM/log-data/CONTEXT_km/cism-km-main.log' + +alias cs='/srv/CISM/sbin/ALLRC status | grep -B 2 -e active -e inactive' +alias dev='cd /srv/CISM/release-management/check-dev' +alias stg='cd /srv/CISM/release-management/rpm-stg' + +# most used netcat alias +alias n='netcat -vz -w 10 ' + +alias psg='ps -aux | grep -v grep | grep ' + +# Some functions (some by c't magazine) +cdl() { + cd "$@" + if [ "$?" == 0 ]; then + ls + fi +} + +backup() { + cp -p "$@" "$@".backup-$(date +%Y-%m-%d_%H_%M_%S) +} + +extract() { + case $1 in + *.tar.bz2) tar xvjf $1 ;; + *.tar.gz|*.tgz) tar xvfz $1 ;; + *.zip) unzip $1 ;; + *) echo "Not supported: $1" ;; + esac +} + +# extend Path +if [ "$(dnsdomainname)" = "emea.isn.corpintra.net" ];then + PATH=$PATH:/home/arsystem/HOME/sgaisel/bin +fi