From ab5435961b8d4ab9852aa1744ff1110b6cfdcff0 Mon Sep 17 00:00:00 2001 From: Frank Villaro-Dixon Date: Fri, 4 Oct 2024 22:05:52 +0200 Subject: [PATCH] add bash & git Signed-off-by: Frank Villaro-Dixon --- files/bashrc | 278 ++++++++++++++++++++++++++++++++++++++++++++++++ files/gitconfig | 41 +++++++ tasks/bash.yml | 15 +++ tasks/git.yml | 13 +++ tasks/main.yml | 2 + 5 files changed, 349 insertions(+) create mode 100644 files/bashrc create mode 100644 files/gitconfig create mode 100644 tasks/bash.yml create mode 100644 tasks/git.yml diff --git a/files/bashrc b/files/bashrc new file mode 100644 index 0000000..e50ee74 --- /dev/null +++ b/files/bashrc @@ -0,0 +1,278 @@ +shopt -s checkwinsize #Pour pas s'écrire dessus +shopt -s histappend +shopt -s autocd #No more cd xx +shopt -s cdspell #drain bramage +shopt -s dirspell +##shopt -s autocd #Like zsh +PROMPT_COMMAND='history -a' + +set -o vi + + +############### +#### ALIAS #### +############### +# {{{ + +alias k='kubectl' +alias klks='kubectl -n kube-system' +alias change_yubikey='gpg-connect-agent "scd serialno" "learn --force" /bye' +alias dockre='docker' +alias dokcer='docker' +alias ..='cd ..' + +alias rm='rm -i' +alias cp='cp -i' + +alias mv='mv -i' +alias vm='mv -i' + +alias df='dfc' +alias free='freec' +alias shred='shred -n 35 -z -u -v -f' + +if [ "$TERM" != "dumb" ]; then + eval "`dircolors -b`" + alias ls='ls --color=auto -N' +fi +alias la='ls -lahN' + + + +alias sudp='sudo' #fuck tpyos :p +alias sudpo='sudo' + + +alias grep='grep --color' + +alias bim='vim' +alias vi='vim' +alias VIM='vim' +alias ivm='vim' +alias vmi='vim' + +alias makew='make' +alias mkae='make' +alias amke='make' +alias mak='make' +alias amek='make' + +alias shm='cd /dev/shm' + +alias arc='tig' +alias ack='rg' +# }}} + + +############### +## FONCTIONS ## +############### +# {{{ + +function cd #{{{ +{ + MY_LAST=`pwd` + if [ $# -eq 0 ]; then + builtin cd ~ && cons_set > /dev/null && ls + else + builtin cd "$*" && cons_set > /dev/null && ls + fi +} +#}}} + +function back { + cd $MY_LAST +} + + + +function mkcd #{{{ +{ + mkdir -p "$@" + cd "$@" +} +# }}} + + + +#CONS(OLE) function, a pretty useful functions that keeps track of +# the lasts whereabouts (in terms of folders) of the terminal +CONS_ROOT_DIRECTORY=/dev/shm/cons_$USER +function cons +{ + if [ ! -d $CONS_ROOT_DIRECTORY ]; then + mkdir $CONS_ROOT_DIRECTORY + fi; + + if [ $# -eq 0 ]; then + for f in $CONS_ROOT_DIRECTORY/*; do + echo -e "`echo $f|rev|cut -d/ -f1|rev` >>\n\t`cat $f`" + #XXX basename + done + elif [ $# -eq 1 ]; then + if [ -e $CONS_ROOT_DIRECTORY/$1 ]; then + cd $(cat $CONS_ROOT_DIRECTORY/$1) + else + echo $1 does not exist + fi; + fi; +} + +function cons_set +{ + TTY=$(tty) + + if [ ! -d $CONS_ROOT_DIRECTORY ]; then + mkdir $CONS_ROOT_DIRECTORY + fi; + + TTYNO=`echo $TTY | cut -d/ -f 4` + pwd > $CONS_ROOT_DIRECTORY/$TTYNO +} + + + +############### +### EXPORTS ### +############### +# {{{ +export EDITOR="vim" + +export HISTCONTROL=erasedups +export HISTSIZE=99999999 +HISTTIMEFORMAT="%d/%m/%y %T " +# }}} +# vim: set filetype=sh + +# Reset +Color_Off="\[\033[0m\]" # Text Reset + +# Regular Colors +Black="\[\033[0;30m\]" # Black +Red="\[\033[0;31m\]" # Red +Green="\[\033[0;32m\]" # Green +Yellow="\[\033[0;33m\]" # Yellow +Blue="\[\033[0;34m\]" # Blue +Purple="\[\033[0;35m\]" # Purple +Cyan="\[\033[0;36m\]" # Cyan +White="\[\033[0;37m\]" # White + +# Bold +BBlack="\[\033[1;30m\]" # Black +BRed="\[\033[1;31m\]" # Red +BGreen="\[\033[1;32m\]" # Green +BYellow="\[\033[1;33m\]" # Yellow +BBlue="\[\033[1;34m\]" # Blue +BPurple="\[\033[1;35m\]" # Purple +BCyan="\[\033[1;36m\]" # Cyan +BWhite="\[\033[1;37m\]" # White + +# Underline +UBlack="\[\033[4;30m\]" # Black +URed="\[\033[4;31m\]" # Red +UGreen="\[\033[4;32m\]" # Green +UYellow="\[\033[4;33m\]" # Yellow +UBlue="\[\033[4;34m\]" # Blue +UPurple="\[\033[4;35m\]" # Purple +UCyan="\[\033[4;36m\]" # Cyan +UWhite="\[\033[4;37m\]" # White + +# Background +On_Black="\[\033[40m\]" # Black +On_Red="\[\033[41m\]" # Red +On_Green="\[\033[42m\]" # Green +On_Yellow="\[\033[43m\]" # Yellow +On_Blue="\[\033[44m\]" # Blue +On_Purple="\[\033[45m\]" # Purple +On_Cyan="\[\033[46m\]" # Cyan +On_White="\[\033[47m\]" # White + +# High Intensty +IBlack="\[\033[0;90m\]" # Black +IRed="\[\033[0;91m\]" # Red +IGreen="\[\033[0;92m\]" # Green +IYellow="\[\033[0;93m\]" # Yellow +IBlue="\[\033[0;94m\]" # Blue +IPurple="\[\033[0;95m\]" # Purple +ICyan="\[\033[0;96m\]" # Cyan +IWhite="\[\033[0;97m\]" # White + +# Bold High Intensty +BIBlack="\[\033[1;90m\]" # Black +BIRed="\[\033[1;91m\]" # Red +BIGreen="\[\033[1;92m\]" # Green +BIYellow="\[\033[1;93m\]" # Yellow +BIBlue="\[\033[1;94m\]" # Blue +BIPurple="\[\033[1;95m\]" # Purple +BICyan="\[\033[1;96m\]" # Cyan +BIWhite="\[\033[1;97m\]" # White + +# High Intensty backgrounds +On_IBlack="\[\033[0;100m\]" # Black +On_IRed="\[\033[0;101m\]" # Red +On_IGreen="\[\033[0;102m\]" # Green +On_IYellow="\[\033[0;103m\]" # Yellow +On_IBlue="\[\033[0;104m\]" # Blue +On_IPurple="\[\033[10;95m\]" # Purple +On_ICyan="\[\033[0;106m\]" # Cyan +On_IWhite="\[\033[0;107m\]" # White + +# Various variables you might want for your PS1 prompt instead +Time12h="\T" +Time12a="\@" +PathShort="\w" +PathFull="\W" +NewLine="\n" +Jobs="\j" + +__git_ps1 () +{ + local b="$(git symbolic-ref HEAD 2>/dev/null)"; + if [ -n "$b" ]; then + printf " (%s)" "${b##refs/heads/}"; + fi +} + +IntroCol=$BIPurple; + +PROMPT_COMMAND=__prompt_command +__prompt_command() { + local EXIT="$?" + PS1="$On_Blue(\h)$Color_Off" + + + if [ $EXIT -eq 0 ]; then + PS1+="✔️" + else + PS1+="❌" + fi + + if [ -n "$VIRTUAL_ENV" ]; then + PS1+="(🧙)" + fi + + PS1+=" " + PS1+="$IntroCol$Time12h$Color_Off" + + git branch &>/dev/null + if [ $? -eq 0 ]; then #In repo + git status | grep 'nothing to commit' >/dev/null 2>&1 + if [ $? -eq 0 ]; then + PS1+="$Green"$(__git_ps1 " (%s)") + else + PS1+="$IRed"$(__git_ps1 " {%s}") + fi + PS1+="$BYellow$PathShort$Color_Off" + else + PS1+=" $Yellow$PathShort$Color_Off\$ " + fi + + if [[ "$KUBECONFIG" =~ (.*pikprod.*|.*rapace.*) ]]; then + PS1+="${URed}PIKPROD !!${Color_Off}" + fi + + PS1+="\n" + +} + + diff --git a/files/gitconfig b/files/gitconfig new file mode 100644 index 0000000..40f472b --- /dev/null +++ b/files/gitconfig @@ -0,0 +1,41 @@ +[user] + name = Frank Villaro-Dixon + email = frank@villaro-dixon.eu + +[color] + branch = auto + diff = auto + interactive = auto + status = auto + ui = auto + +[alias] + st = status + ci = commit -s + commti = commit + co = checkout + br = branch + pu = push + psuh = push + puhs = push + psh = push + plul = pull + dad = add + undo-commit = reset --soft HEAD^ + tag = tag -s + ap = add --patch + +[core] + editor = vim + excludesfile = ~/.gitignore + hooksPath = .githooks + abbrev = 12 + +[merge] + tool = vimdiff + +[push] + default = current + +[init] + defaultBranch = main diff --git a/tasks/bash.yml b/tasks/bash.yml new file mode 100644 index 0000000..6977c9c --- /dev/null +++ b/tasks/bash.yml @@ -0,0 +1,15 @@ +- name: Copy bashrc + copy: + src: files/bashrc + dest: /root/.bashrc + owner: root + group: root + mode: 0644 + +- name: set .bash_profile with var + copy: + content: '[[ -f ~/.bashrc ]] && . ~/.bashrc' + dest: /root/.bash_profile + owner: root + group: root + mode: 0644 diff --git a/tasks/git.yml b/tasks/git.yml new file mode 100644 index 0000000..752c6b9 --- /dev/null +++ b/tasks/git.yml @@ -0,0 +1,13 @@ +- name: Install git + ansible.builtin.package: + name: git + state: present + +- name: Copy .gitconfig + copy: + src: files/gitconfig + dest: /root/.gitconfig + owner: root + group: root + mode: 0644 + \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index cc4d1c8..a12232c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,3 +1,4 @@ +- import_tasks: bash.yml - import_tasks: journald.yml - import_tasks: ntp.yml - import_tasks: ssh.yml @@ -5,3 +6,4 @@ - import_tasks: motd.yml - import_tasks: setup_backup.yml - import_tasks: pkgs.yml +- import_tasks: git.yml