diff --git a/README.adoc b/README.adoc index 8fade0a..f9ff73c 100644 --- a/README.adoc +++ b/README.adoc @@ -9,7 +9,8 @@ TODO: how to handle a new linux system correctly. Test with `centos7-01`: . put executable to HOME dir -. initialize with `./chezmoi init https://gitea.sdroid.uber.space/heavy/dotfiles.git` +. add public ssh key to gitea user +. initialize with `./chezmoi init sdroid@gitea.sdroid.uber.space:heavy/dotfiles.git` . check what will happen with `./chezmoi diff` . apply it with `./chezmoi apply` diff --git a/dot_sshrc b/dot_sshrc index 74f33ef..59d0633 100644 --- a/dot_sshrc +++ b/dot_sshrc @@ -1,125 +1,46 @@ -if [ -f $HOME/.profile ]; then - source $HOME/.profile -fi +# +# sshrc will be called byaliased ssh command 's'. +# +# if [ -f $HOME/.profile ]; then +# source $HOME/.profile +# fi +# if [ -f $HOME/.bashrc ]; then +# source $HOME/.bashrc +# fi # -# TODO: CISM Section +# System Name and type detectedn # 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 +if [ -f /etc/os-release ];then + myPrettyName=$(grep PRETTY_NAME /etc/os-release) 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 '✔' + printf '\e[38;5;160m%-5s' "✕ ❗ ($exit)" + else + printf '✔' fi - # printf "  $SLES_VERSION" } -# Solarized Theme +# sourcing Solarized Theme +# and building PS1 prompt source $HOME/.solarize_colors_base +echo "mySystem: $mySystem" +echo "myFQDN: $myFQDN" -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 +SYSTEM="" +bg_system="${sol_bg_magenta}" +fg_system="${sol_magenta}" +fg_type="${sol_magenta}" bg_type="${sol_bg_base3}" fg_arrow1="${fg_type}" @@ -135,29 +56,13 @@ if [ "$myNum" != "0" ]; then 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 @@ -166,10 +71,6 @@ fi 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" @@ -177,72 +78,16 @@ if [ $(whoami | grep root | wc -l) == 1 ]; then # 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))" +# TODO: background colors... +# TODO: private history file for shared accounts +# TODO: vim 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) @@ -258,15 +103,12 @@ backup() { } extract() { - case $1 in - *.tar.bz2) tar xvjf $1 ;; - *.tar.gz|*.tgz) tar xvfz $1 ;; - *.zip) unzip $1 ;; - *) echo "Not supported: $1" ;; + 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 +PATH=$PATH:$HOME/bin diff --git a/dot_sshrc.tmpl b/dot_sshrc.tmpl new file mode 100644 index 0000000..8ecf1b7 --- /dev/null +++ b/dot_sshrc.tmpl @@ -0,0 +1,115 @@ +# +# sshrc will be called byaliased ssh command 's'. +# +if [ -f $HOME/.profile ]; then + source $HOME/.profile +fi +if [ -f $HOME/.bashrc ]; then + source $HOME/.bashrc +fi + +# +# System Name and type detectedn +# +mySystem=$(uname -n) +myFQDN="$(uname -n).$(dnsdomainname)" +myCategory={{.bash.prompt.category}} +myType={{.chezmoi.hostname}} +myPrettyName={{.chezmoi.osRelease.prettyName}} + +# last exit code +function lastExitCode { + local exit="$?" + + if [ $exit != 0 ];then + printf '\e[38;5;160m%-5s' "✕ ❗ ($exit)" + else + printf '✔' + fi +} + +# sourcing Solarized Theme +# and building PS1 prompt +source $HOME/.solarize_colors_base +echo "mySystem: $mySystem" +echo "myFQDN: $myFQDN" + +bg_type="\[\e[48;5;254m\]" +bg_reset="\[\e[49m\]" +fg_reset="\[\e[39m\]" + +bg_system="${sol_bg_magenta}" +fg_system="${sol_base3}" +fg_type="${sol_magenta}" + +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${fg_arrow1}░▒▓${bg_system} ${fg_system}${myCategory} ${bg_type}${fg_arrow1}▓▒░" +TYPE_PROMPT="$TYPE  \$(lastExitCode) ${fg_arrow1}  $myPrettyName ${sol_blue}\${STY#[0-9]*.} ${bg_reset}${fg_arrow2}▓▒░" + +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" +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\]" + +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' +fi + +# TODO: background colors... +# TODO: private history file for shared accounts +# TODO: vim + +export LS_OPTIONS='--color=auto' +eval "$(dircolors -b)" +alias ls='ls $LS_OPTIONS' + +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 +} + +PATH=$PATH:$HOME/bin