bsh: Duplicate source files and optimize
A step back... but hopefully so we can take a step forward?
This commit is contained in:
parent
dcb8e62df2
commit
65d1594ec9
53
config/scripts/.bsh/bashrc
Normal file
53
config/scripts/.bsh/bashrc
Normal file
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Geoffrey's trimmed and condensed shell configuration file,
|
||||
# with an healthy and safe dose of aliases and config.
|
||||
# Can be embedded to any server
|
||||
|
||||
# Completion for existing commands
|
||||
alias ls='ls -h --color=auto'
|
||||
alias mkdir='mkdir -v'
|
||||
alias cp="cp -i"
|
||||
alias mv="mv -iv"
|
||||
alias free='free -h'
|
||||
alias df='df -h'
|
||||
|
||||
# Advanced completions
|
||||
# (not busybox compatible)
|
||||
alias cp="cp -i --reflink=auto"
|
||||
alias grep="grep --color=auto"
|
||||
alias dd='dd status=progress'
|
||||
alias rm='rm -v --one-file-system'
|
||||
alias free='free -m'
|
||||
alias diff='diff --color=auto'
|
||||
alias dmesg='dmesg --ctime'
|
||||
|
||||
# Frequent mistakes
|
||||
alias sl=ls
|
||||
alias al=la
|
||||
alias mdkir=mkdir
|
||||
alias systemclt=systemctl
|
||||
alias please=sudo
|
||||
|
||||
# Shortcuts for commonly used commands
|
||||
alias ll="ls -l"
|
||||
alias la="ls -la"
|
||||
# alias s='sudo -s -E'
|
||||
|
||||
# Bash options
|
||||
shopt -s expand_aliases
|
||||
shopt -s histappend
|
||||
HISTCONTROL=ignoreboth:erasedups
|
||||
|
||||
# Program configuration
|
||||
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'
|
||||
export LESS=-R
|
||||
export LESS_TERMCAP_mb=$'\E[1;31m'
|
||||
export LESS_TERMCAP_md=$'\E[1;36m'
|
||||
export LESS_TERMCAP_me=$'\E[0m'
|
||||
export LESS_TERMCAP_so=$'\E[01;44;33m'
|
||||
export LESS_TERMCAP_se=$'\E[0m'
|
||||
export LESS_TERMCAP_us=$'\E[1;32m'
|
||||
export LESS_TERMCAP_ue=$'\E[0m'
|
||||
|
||||
|
25
config/scripts/.bsh/bashrc_unsortable
Normal file
25
config/scripts/.bsh/bashrc_unsortable
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Prefered programs environment variables
|
||||
export PAGER=less
|
||||
if [ -x "$(command -v nvim)" ]
|
||||
then
|
||||
export EDITOR=nvim
|
||||
alias vi=nvim
|
||||
elif [ -x "$(command -v vim)" ]
|
||||
then
|
||||
export EDITOR=vim
|
||||
alias vi=vim
|
||||
else
|
||||
export EDITOR=vi
|
||||
fi
|
||||
|
||||
# Prompt
|
||||
if [[ $USER == 'root' ]]; then
|
||||
col=31;
|
||||
elif [[ $USER == 'geoffrey' ]]; then
|
||||
col=32;
|
||||
else
|
||||
col=33;
|
||||
fi
|
||||
export PS1="\[\e]2;\u@\H \w\a\]\[\e[0;37m\][\[\e[0;${col}m\]\u\[\e[0;37m\]@\[\e[0;34m\]\h \[\e[0;36m\]\W\[\e[0;37m\]]\$\[\e[0m\] "
|
50
config/scripts/.bsh/inputrc
Normal file
50
config/scripts/.bsh/inputrc
Normal file
|
@ -0,0 +1,50 @@
|
|||
$include /etc/inputrc
|
||||
set bell-style none
|
||||
set colored-completion-prefix on
|
||||
set colored-stats on
|
||||
set completion-ignore-case on
|
||||
set completion-query-items 200
|
||||
set editing-mode vi
|
||||
set history-preserve-point on
|
||||
set history-size 10000
|
||||
set horizontal-scroll-mode off
|
||||
set mark-directories on
|
||||
set mark-modified-lines off
|
||||
set mark-symlinked-directories on
|
||||
set match-hidden-files on
|
||||
set menu-complete-display-prefix on
|
||||
set page-completions on
|
||||
set print-completions-horizontally off
|
||||
set revert-all-at-newline off
|
||||
set show-all-if-ambiguous on
|
||||
set show-all-if-unmodified on
|
||||
set show-mode-in-prompt on
|
||||
set skip-completed-text on
|
||||
set visible-stats off
|
||||
|
||||
$if mode=vi
|
||||
# these are for vi-command mode
|
||||
set keymap vi-command
|
||||
"k": history-search-backward
|
||||
"j": history-search-forward
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
Control-l: clear-screen
|
||||
|
||||
# these are for vi-insert mode
|
||||
set keymap vi-insert
|
||||
"jk": vi-movement-mode
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
Control-l: clear-screen
|
||||
|
||||
# Switch between thin cursor and thicc block depending on vi mode
|
||||
$if term=linux
|
||||
set vi-ins-mode-string \1\e[?0c\2
|
||||
set vi-cmd-mode-string \1\e[?8c\2
|
||||
$else
|
||||
set vi-ins-mode-string \1\e[6 q\2
|
||||
set vi-cmd-mode-string \1\e[2 q\2
|
||||
$endif
|
||||
$endif
|
||||
|
51
config/scripts/.bsh/vimrc
Normal file
51
config/scripts/.bsh/vimrc
Normal file
|
@ -0,0 +1,51 @@
|
|||
cmap w!! w !sudo tee > /dev/null %
|
||||
filetype indent on
|
||||
filetype on
|
||||
filetype plugin on
|
||||
imap jk <Esc>
|
||||
let g:netrw_fastbrowse = 0
|
||||
nmap <C-H> :bp<CR>
|
||||
nmap <C-J> jjjjjjjjjjjjjjjjjjjjj
|
||||
nmap <C-K> kkkkkkkkkkkkkkkkkkkkk
|
||||
nmap <C-L> :bn<CR>
|
||||
nmap <Enter> o<Esc>
|
||||
nnoremap <Leader>s :%s/\<<C-r><C-w>\>/
|
||||
set backspace=indent,eol,start
|
||||
set cursorcolumn
|
||||
set encoding=utf-8
|
||||
set expandtab
|
||||
set gdefault
|
||||
set hidden
|
||||
set hlsearch
|
||||
set ignorecase
|
||||
set incsearch
|
||||
set lazyredraw
|
||||
set list
|
||||
set listchars=tab:╾╌,trail:·,extends:↦,precedes:↤,nbsp:_
|
||||
set noerrorbells
|
||||
set number
|
||||
set ruler
|
||||
set scrolloff=10
|
||||
set shiftwidth=4
|
||||
set showbreak=↪
|
||||
set showcmd
|
||||
set smartcase
|
||||
set splitbelow
|
||||
set tabstop=4
|
||||
set title
|
||||
set updatetime=250
|
||||
set visualbell
|
||||
set wildmenu
|
||||
set wildmode=longest,list
|
||||
set wrap
|
||||
syntax enable
|
||||
vmap <Enter> <Esc>
|
||||
if has('nvim')
|
||||
set inccommand=nosplit
|
||||
set relativenumber
|
||||
augroup every
|
||||
autocmd!
|
||||
au InsertEnter * set norelativenumber
|
||||
au InsertLeave * set relativenumber
|
||||
augroup END
|
||||
endif
|
|
@ -1,9 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO Do not dupplicate trimmed.bash
|
||||
# TODO More integrated with current config
|
||||
|
||||
CACHE_DIR="${XDG_CACHE_DIR:-$HOME/.cache}/bsh"
|
||||
FOLDER_NAME="geoffrey"
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
|
||||
mkdir -p "$CACHE_DIR"
|
||||
|
@ -12,14 +13,24 @@ then
|
|||
# Preparation
|
||||
WORK="${CACHE_DIR}/${FOLDER_NAME}"
|
||||
DEST="/tmp/${FOLDER_NAME}"
|
||||
rm -rf "$WORK" # DEBUG
|
||||
mkdir "$WORK"
|
||||
|
||||
# Copying files
|
||||
grep -o '^[^#]*' ~/.config/shell/trimmed.bash > "${WORK}/.bashrc"
|
||||
grep -o '^[^#]*' ~/.config/inputrc > "${WORK}/.inputrc"
|
||||
# grep -o '^[^"]*' ~/.config/vim/vimconfig.vim > "${WORK}/.vimrc"
|
||||
# TODO Above file doesn't work anymore with automatrop
|
||||
# TODO Maybe we should just set HOME there…
|
||||
|
||||
# Bashrc generation (sortable then unsortable)
|
||||
grep -o '^\s*[^#]*' $SCRIPT_DIR/.bsh/bashrc | sed 's/^\s\+//' > "${WORK}/b"
|
||||
echo "alias s='sudo -s -E bash --rcfile ${DEST}/b'" >> "${WORK}/b"
|
||||
echo "export VIMINIT='source ${DEST}/v'" >> "${WORK}/b"
|
||||
#echo "export TERMINFO=${DEST}/terminfo" >> "${WORK}/b"
|
||||
echo "export INPUTRC=${DEST}/i" >> "${WORK}/b"
|
||||
# Sort for compression efficiency (saves a whooping 12 bytes)
|
||||
sort -u "${WORK}/b" > "${WORK}/b_sorted"
|
||||
mv "${WORK}/b_sorted" "${WORK}/b"
|
||||
|
||||
dircolors --sh >> "${WORK}/b"
|
||||
grep -o '^[^#]*' $SCRIPT_DIR/.bsh/bashrc_unsortable | sed 's/^\s\+//' >> "${WORK}/b"
|
||||
|
||||
# Other files generation
|
||||
#mkdir -p "${WORK}/terminfo/${TERM:0:1}"
|
||||
#if [ -f "/usr/share/terminfo/${TERM:0:1}/${TERM}" ]
|
||||
#then
|
||||
|
@ -28,23 +39,18 @@ then
|
|||
#then
|
||||
# cp "$HOME/.config/terminfo/${TERM:0:1}/${TERM}" "${WORK}/terminfo/${TERM:0:1}/${TERM}"
|
||||
#fi
|
||||
|
||||
# Extra configuration
|
||||
echo "alias s='sudo -s -E bash --rcfile ${DEST}/.bashrc'" >> "${WORK}/.bashrc"
|
||||
echo "export VIMINIT='source ${DEST}/.vimrc'" >> "${WORK}/.bashrc"
|
||||
#echo "export TERMINFO=${DEST}/terminfo" >> "${WORK}/.bashrc"
|
||||
echo "export INPUTRC=${DEST}/.inputrc" >> "${WORK}/.bashrc"
|
||||
# TODO Maybe we should just set HOME there…
|
||||
grep -o '^\s*[^#]*' $SCRIPT_DIR/.bsh/inputrc | sed 's/^\s\+//' > "${WORK}/i"
|
||||
grep -o '^\s*[^"]*' $SCRIPT_DIR/.bsh/vimrc | sed 's/^\s\+//' > "${WORK}/v"
|
||||
|
||||
# Crafting command
|
||||
b64="$(cd "$CACHE_DIR"; tar czf - "$FOLDER_NAME" | base64 -w 0)"
|
||||
echo "echo '$b64' | base64 -d | tar xzf - -C /tmp" > "${CACHE_DIR}/cmd"
|
||||
echo "bash --rcfile ${DEST}/.bashrc" >> "${CACHE_DIR}/cmd"
|
||||
echo "echo $b64|base64 -d|tar xzC /tmp" > "${CACHE_DIR}/cmd"
|
||||
echo "bash --rcfile ${DEST}/b" >> "${CACHE_DIR}/cmd"
|
||||
echo "rm -rf ${DEST}" >> "${CACHE_DIR}/cmd"
|
||||
# TODO Do not remove unless last one connected
|
||||
|
||||
# Cleanup
|
||||
# rm -rf "$WORK"
|
||||
rm -rf "$WORK"
|
||||
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Geoffrey's trimmed and condensed shell configuration file,
|
||||
# with an healthy and safe dose of aliases and config.
|
||||
# Can be embedded to any server
|
||||
|
||||
# Prefered programs environment variables
|
||||
export PAGER=less
|
||||
if [ -x "$(command -v nvim)" ]
|
||||
then
|
||||
export EDITOR=nvim
|
||||
alias vi=nvim
|
||||
elif [ -x "$(command -v vim)" ]
|
||||
then
|
||||
export EDITOR=vim
|
||||
alias vi=vim
|
||||
else
|
||||
export EDITOR=vi
|
||||
fi
|
||||
|
||||
# Completion for existing commands
|
||||
alias ls='ls -h --color=auto'
|
||||
alias mkdir='mkdir -v'
|
||||
alias cp="cp -i"
|
||||
alias mv="mv -iv"
|
||||
alias free='free -h'
|
||||
alias df='df -h'
|
||||
|
||||
# Advanced completions
|
||||
# (not busybox compatible)
|
||||
alias cp="cp -i --reflink=auto"
|
||||
alias grep="grep --color=auto"
|
||||
alias dd='dd status=progress'
|
||||
alias rm='rm -v --one-file-system'
|
||||
alias free='free -m'
|
||||
alias diff='diff --color=auto'
|
||||
alias dmesg='dmesg --ctime'
|
||||
|
||||
# Frequent mistakes
|
||||
alias sl=ls
|
||||
alias al=la
|
||||
alias mdkir=mkdir
|
||||
alias systemclt=systemctl
|
||||
alias please=sudo
|
||||
|
||||
# Shortcuts for commonly used commands
|
||||
alias ll="ls -l"
|
||||
alias la="ls -la"
|
||||
alias s='sudo -s -E'
|
||||
|
||||
# Bash options
|
||||
shopt -s expand_aliases
|
||||
shopt -s histappend
|
||||
HISTCONTROL=ignoreboth:erasedups
|
||||
|
||||
# Program configuration
|
||||
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'
|
||||
export LESS=-R
|
||||
export LESS_TERMCAP_mb=$'\E[1;31m' # begin blink
|
||||
export LESS_TERMCAP_md=$'\E[1;36m' # begin bold
|
||||
export LESS_TERMCAP_me=$'\E[0m' # reset bold/blink
|
||||
export LESS_TERMCAP_so=$'\E[01;44;33m' # begin reverse video
|
||||
export LESS_TERMCAP_se=$'\E[0m' # reset reverse video
|
||||
export LESS_TERMCAP_us=$'\E[1;32m' # begin underline
|
||||
export LESS_TERMCAP_ue=$'\E[0m' # reset underline
|
||||
# from $(dircolors --sh)
|
||||
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:';
|
||||
export LS_COLORS
|
||||
|
||||
# Prompt
|
||||
if [[ $USER == 'root' ]]; then
|
||||
col=31;
|
||||
elif [[ $USER == 'geoffrey' ]]; then
|
||||
col=32;
|
||||
else
|
||||
col=33;
|
||||
fi
|
||||
export PS1="\[\e]2;\u@\H \w\a\]\[\e[0;37m\][\[\e[0;${col}m\]\u\[\e[0;37m\]@\[\e[0;34m\]\h \[\e[0;36m\]\W\[\e[0;37m\]]\$\[\e[0m\] "
|
||||
|
Loading…
Reference in a new issue