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
6 changed files with 202 additions and 96 deletions
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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue