Merge branch '1-add-bashrc' into 'master'

Resolve "Add .bashrc"

Closes #1

See merge request icaotix/linux-tools!20
This commit is contained in:
Marcel Schwarz 2020-08-01 20:59:57 +00:00
commit d155d0ada9
4 changed files with 222 additions and 1 deletions

View File

@ -8,6 +8,7 @@ from modules.vim.VimModule import VimModule
from modules.teamspeak.Teamspeak import Teamspeak from modules.teamspeak.Teamspeak import Teamspeak
from modules.hacker.Hacker import Hacker from modules.hacker.Hacker import Hacker
import modules.fail2ban.Fail2BanModule as fail2ban import modules.fail2ban.Fail2BanModule as fail2ban
from modules.bashrc.BashrcModule import BashrcModule
modules = { modules = {
"helloworld": HelloWorld().run, "helloworld": HelloWorld().run,
@ -17,7 +18,8 @@ modules = {
"vim": VimModule().run, "vim": VimModule().run,
"teamspeak": Teamspeak, "teamspeak": Teamspeak,
"hacker": Hacker, "hacker": Hacker,
"fail2ban": fail2ban.run() "fail2ban": fail2ban.run,
"bashrc": BashrcModule().run
} }
fire.Fire(modules) fire.Fire(modules)

View File

@ -0,0 +1,26 @@
from PyInquirer import prompt
import os
from shutil import copyfile
from print_helpers import print_gr, print_fail
class BashrcModule:
def run(self):
bashrc_path = os.path.join(os.path.expanduser('~'), ".bashrc")
bashrc_exists = os.path.exists(bashrc_path)
if bashrc_exists:
print_gr(f"Found .bashrc in {bashrc_path}")
ask_to_keep = {
'type': 'confirm',
'message': 'Do you want to overwrite the existing .bashrc?',
'name': 'overwrite',
'default': False,
}
if not prompt(ask_to_keep)['overwrite']:
print_fail("Stopping")
return
copyfile("./modules/bashrc/bashrc_default", bashrc_path)
print_gr("Successfully overwritten .bashrc!") if bashrc_exists else print_gr(f"Successfully created .bashrc!")

179
modules/bashrc/bashrc_default Executable file
View File

@ -0,0 +1,179 @@
#
# ~/.bashrc
#
PATH="$PATH:$(ruby -e 'puts Gem.user_dir')/bin"
[[ $- != *i* ]] && return
colors() {
local fgc bgc vals seq0
printf "Color escapes are %s\n" '\e[${value};...;${value}m'
printf "Values 30..37 are \e[33mforeground colors\e[m\n"
printf "Values 40..47 are \e[43mbackground colors\e[m\n"
printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n"
# foreground colors
for fgc in {30..37}; do
# background colors
for bgc in {40..47}; do
fgc=${fgc#37} # white
bgc=${bgc#40} # black
vals="${fgc:+$fgc;}${bgc}"
vals=${vals%%;}
seq0="${vals:+\e[${vals}m}"
printf " %-9s" "${seq0:-(default)}"
printf " ${seq0}TEXT\e[m"
printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
done
echo; echo
done
}
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
# Change the window title of X terminals
case ${TERM} in
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
;;
screen*)
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
;;
esac
use_color=true
# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS. Try to use the external file
# first to take advantage of user additions. Use internal bash
# globbing instead of external grep binary.
safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
match_lhs=""
[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
[[ -z ${match_lhs} ]] \
&& type -P dircolors >/dev/null \
&& match_lhs=$(dircolors --print-database)
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
if ${use_color} ; then
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
if type -P dircolors >/dev/null ; then
if [[ -f ~/.dir_colors ]] ; then
eval $(dircolors -b ~/.dir_colors)
elif [[ -f /etc/DIR_COLORS ]] ; then
eval $(dircolors -b /etc/DIR_COLORS)
fi
fi
if [[ ${EUID} == 0 ]] ; then
PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
else
PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
fi
alias ls='ls --color=auto'
alias grep='grep --colour=auto'
alias egrep='egrep --colour=auto'
alias fgrep='fgrep --colour=auto'
else
if [[ ${EUID} == 0 ]] ; then
# show root@ when we don't have colors
PS1='\u@\h \W \$ '
else
PS1='\u@\h \w \$ '
fi
fi
unset use_color safe_term match_lhs sh
alias cp="cp -i" # confirm before overwriting something
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB
alias np='nano -w PKGBUILD'
alias more=less
xhost +local:root > /dev/null 2>&1
complete -cf sudo
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control. #65623
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize
shopt -s expand_aliases
# export QT_SELECT=4
# Enable history appending instead of overwriting. #139609
shopt -s histappend
#
# # ex - archive extractor
# # usage: ex <file>
ex ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# better yaourt colors
export YAOURT_COLORS="nb=1:pkg=1:ver=1;32:lver=1;45:installed=1;42:grp=1;34:od=1;41;5:votes=1;44:dsc=0:other=1;35"
# Colorize ls command
LS_COLORS='di=36;40:ln=1;36;40:so=0;40:pi=0;40:ex=1;32;40:bd=0;40:cd=0;40:su=0;40:sg=0;40:tw=1;36;40:ow=1;36;40:'
export LS_COLORS
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias la='ls -la'
alias l='ls $LS_OPTIONS -lA'
alias vi='vim'
alias tmux="TERM=screen-256color tmux"
alias ctc='tmux show-buffer | xclip -selection clipboard'
# alias cat='batcat'
alias gss='git status -s'
alias gaa='git add .'
alias gcm='git commit -m'

14
print_helpers.py Normal file
View File

@ -0,0 +1,14 @@
def print_fail(text):
print("\033[91m" + "[-] " + text + "\033[0m")
def print_gr(text):
print("\033[92m" + "[+] " + text + "\033[0m")
def print_warn(text):
print("\033[93m" + "[*] " + text + "\033[0m")
def print_blue(text):
print("\033[94m" + "[+] " + text + "\033[0m")