initial
This commit is contained in:
commit
e1056d8d54
165
dotfiles/.bashrc
Normal file
165
dotfiles/.bashrc
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||||
|
# for examples
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
|
# See bash(1) for more options
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
|
||||||
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
|
HISTSIZE=1000
|
||||||
|
HISTFILESIZE=2000
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# If set, the pattern "**" used in a pathname expansion context will
|
||||||
|
# match all files and zero or more directories and subdirectories.
|
||||||
|
#shopt -s globstar
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
|
||||||
|
# set variable identifying the chroot you work in (used in the prompt below)
|
||||||
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||||
|
debian_chroot=$(cat /etc/debian_chroot)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
case "$TERM" in
|
||||||
|
xterm-color|*-256color) color_prompt=yes;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||||
|
# off by default to not distract the user: the focus in a terminal window
|
||||||
|
# should be on the output of commands, not on the prompt
|
||||||
|
#force_color_prompt=yes
|
||||||
|
|
||||||
|
if [ -n "$force_color_prompt" ]; then
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
# We have color support; assume it's compliant with Ecma-48
|
||||||
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||||
|
# a case would tend to support setf rather than setaf.)
|
||||||
|
color_prompt=yes
|
||||||
|
else
|
||||||
|
color_prompt=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$color_prompt" = yes ]; then
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||||
|
else
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||||
|
fi
|
||||||
|
unset color_prompt force_color_prompt
|
||||||
|
|
||||||
|
# If this is an xterm set the title to user@host:dir
|
||||||
|
case "$TERM" in
|
||||||
|
xterm*|rxvt*)
|
||||||
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
#alias dir='dir --color=auto'
|
||||||
|
#alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
vc() {
|
||||||
|
git add .
|
||||||
|
git commit -m "commit: $(date "+%Y-%m-%d %H:%M:%S")"
|
||||||
|
git push
|
||||||
|
}
|
||||||
|
# some more ls aliases
|
||||||
|
alias ll='ls -alFh'
|
||||||
|
alias la='ls -A'
|
||||||
|
alias l='ls -CF'
|
||||||
|
#alias lb='lsblk -o+FSAVAIL,FSUSED,FSUSE%,MODEL,PARTTYPENAME,STATE'
|
||||||
|
alias lb='lsblk -o+FSTYPE,FSAVAIL,FSUSED,FSUSE%,MODEL'
|
||||||
|
alias opg="lsof 2>/dev/null +D . | grep 'pg.*swp$' | awk '{print \$9}' | sed 's/\.swp//g' | sed 's/\/\./\//g'"
|
||||||
|
alias osw="lsof 2>/dev/null +D . | awk '\$NF ~ /swp$/ {print \$9}' | sed 's/\.swp//g' | sed 's/\/\./\//g'"
|
||||||
|
alias xpg="lsof 2>/dev/null +D . | grep 'pg.*swp$' | awk '{print \$9}' | sed 's/\.swp//g' | sed 's/\/\./\//g' | xargs -r $PG -f"
|
||||||
|
alias xsw="lsof 2>/dev/null +D . | grep '.*swp$' | awk '{print \$9}' | sed 's/\.swp//g' | sed 's/\/\./\//g' | xargs -r $PG -f"
|
||||||
|
alias ons='lsof +D ~/.local/state/nvim/swap/ | grep -o "/swap/.*" | cut -c 7- | tr "%" "/" | sed "s/\\.swp$//" | grep "$(pwd)"'
|
||||||
|
alias xns='lsof +D ~/.local/state/nvim/swap/ | grep -o "/swap/.*" | cut -c 7- | tr "%" "/" | sed "s/\\.swp$//" | sed "s/\\.swo$//" | grep "$(pwd | sed "s|^//|/|")" | fzf | xargs -I % $PG -f %'
|
||||||
|
alias xnsp='lsof +D ~/.local/state/nvim/swap/ | grep -o "/swap/.*" | cut -c 7- | tr "%" "/" | sed "s/\\.swp$//" | sed "s/\\.swo$//" | grep "$(pwd | sed "s|^//|/|")" | fzf | xargs -I % $PG -f % | pspg'
|
||||||
|
#alias xnsp='lsof +D ~/.local/state/nvim/swap/ | grep -o "/swap/.*" | cut -c 7- | tr "%" "/" | sed "s/\\.swp$//" | grep "$(pwd)" | fzf | xargs -I % $PG -f % | pspg'
|
||||||
|
alias mns='fzf | xargs -I {} sqlcmd -U Pricing -S mid-sql02 -C -i {} | pspg'
|
||||||
|
alias xmsp='lsof +D ~/.local/state/nvim/swap/ | grep -o "/swap/.*" | cut -c 7- | tr "%" "/" | sed "s/\\.swp$//" | grep "$(pwd | sed "s|^//|/|")" | fzf | xargs -I % $MS -i % | pspg'
|
||||||
|
alias nv='~/nvim-linux64/bin/nvim'
|
||||||
|
alias gs='git status -s'
|
||||||
|
alias ga='git status --untracked-files=all -s | fzf -m | awk "{print \$2}" | xargs git add '
|
||||||
|
alias gx='git status --untracked-files=all -s | fzf -m | awk "{print \$2}" | xargs git checkout '
|
||||||
|
alias td='rg "\- \[[^x]\]"'
|
||||||
|
# alias tdo='rg "\- \[[^x]\]" | fzf | xargs nvim'
|
||||||
|
alias tdo='rg "\- \[ \]" --line-number | fzf | awk -F: "{print \$1, \"+\"\$2}" | xargs -r nvim'
|
||||||
|
alias gr='git reset HEAD'
|
||||||
|
alias gc='git commit -v'
|
||||||
|
alias gd='git difftool'
|
||||||
|
alias gl='git log --graph --oneline --format="%C(yellow)%h %C(green)%an%Creset %C(blue)%ad%Creset %s"'
|
||||||
|
alias cj='cd ~/storage/shared/Documents/journal/'
|
||||||
|
alias jr='cd ~/storage/shared/Documents/journal/ && git pull && vc && cd -'
|
||||||
|
alias hc='cd ~/storage/shared/Documents/hc_notes/ && git pull && git push && cd -'
|
||||||
|
|
||||||
|
# Add an "alert" alias for long running commands. Use like so:
|
||||||
|
# sleep 10; alert
|
||||||
|
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||||
|
|
||||||
|
# Alias definitions.
|
||||||
|
# You may want to put all your additions into a separate file like
|
||||||
|
# ~/.bash_aliases, instead of adding them here directly.
|
||||||
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#EDITOR=/usr/bin/vim.basic
|
||||||
|
export EDITOR=vim
|
||||||
|
export VISUAL=vim
|
||||||
|
PAGER="less"
|
||||||
|
LESS="-S"
|
||||||
|
export PSQL_PAGER="pspg"
|
||||||
|
|
||||||
|
if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then
|
||||||
|
GIT_PROMPT_ONLY_IN_REPO=1
|
||||||
|
source $HOME/.bash-git-prompt/gitprompt.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
bind 'set bell-style none'
|
||||||
|
|
||||||
|
[ -f ~/dot_config/.bashrc_local ] && source ~/dot_config/.bashrc_local
|
||||||
|
export PATH=$PATH:~/lua-language-server/bin
|
9
dotfiles/.bashrc_local
Normal file
9
dotfiles/.bashrc_local
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#export IPTOKEN=
|
||||||
|
#export PG="psql -U ptrowbridge -d ubm -p 5432 -h usmidsap01"
|
||||||
|
#export MS="sqlcmd.exe -S mid-sql02 -i"
|
||||||
|
#export JAVA_HOME=/opt/jdk-19.0.1
|
||||||
|
#export PATH=$PATH:$JAVA_HOME/bin
|
||||||
|
#export PATH=$PATH:/opt/gradle/gradle-7.6/bin
|
||||||
|
#export RUNNER_PATH=/opt/runner/
|
||||||
|
#export DB2PW=
|
||||||
|
#export PGPW=
|
28
dotfiles/.gitconfig
Normal file
28
dotfiles/.gitconfig
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
[user]
|
||||||
|
email = paul@hptrow.me
|
||||||
|
name = Paul Trowbridge
|
||||||
|
[core]
|
||||||
|
autocrlf = input
|
||||||
|
editor = vim
|
||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
[alias]
|
||||||
|
pushall = !git remote | xargs -L1 git push --all
|
||||||
|
[log]
|
||||||
|
date = format:%Y-%m-%d %H:%M:%S
|
||||||
|
[format]
|
||||||
|
pretty = format:'%C(yellow)%h %Cred%ad %Cblue%an %Cgreen%d %Creset%s'
|
||||||
|
[diff]
|
||||||
|
tool = vimdiff
|
||||||
|
[safe]
|
||||||
|
directory = /var/www/kimai2
|
||||||
|
directory = /var/www/html/resume/
|
||||||
|
directory = /var/www/html/resume
|
||||||
|
directory = /opt/forecast_api/
|
||||||
|
directory = /opt/forecast_api
|
||||||
|
directory = /etc/postgresql/15/main/
|
||||||
|
directory = /etc/postgresql/15/main
|
||||||
|
directory = /storage/emulated/0/Documents/journal
|
||||||
|
directory = /storage/emulated/0/Documents/hc_notes
|
||||||
|
[pull]
|
||||||
|
rebase = false
|
40
dotfiles/.pspgconf
Normal file
40
dotfiles/.pspgconf
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
ascii_menu = false
|
||||||
|
bold_labels = false
|
||||||
|
bold_cursor = false
|
||||||
|
ignore_case = false
|
||||||
|
ignore_lower_case = false
|
||||||
|
no_cursor = false
|
||||||
|
no_sound = false
|
||||||
|
no_mouse = false
|
||||||
|
less_status_bar = false
|
||||||
|
no_highlight_search = false
|
||||||
|
no_highlight_lines = false
|
||||||
|
force_uniborder = false
|
||||||
|
show_rownum = false
|
||||||
|
without_commandbar = false
|
||||||
|
without_topbar = false
|
||||||
|
vertical_cursor = true
|
||||||
|
on_sigint_exit = false
|
||||||
|
no_sigint_search_reset = false
|
||||||
|
double_header = false
|
||||||
|
quit_on_f3 = false
|
||||||
|
pgcli_fix = false
|
||||||
|
xterm_mouse_mode = true
|
||||||
|
show_scrollbar = true
|
||||||
|
menu_always = false
|
||||||
|
empty_string_is_null = true
|
||||||
|
last_row_search = true
|
||||||
|
progressive_load_mode = true
|
||||||
|
highlight_odd_rec = true
|
||||||
|
hide_header_line = false
|
||||||
|
on_exit_reset = false
|
||||||
|
on_exit_clean = false
|
||||||
|
on_exit_erase_line = false
|
||||||
|
on_exit_sgr0 = false
|
||||||
|
direct_color = false
|
||||||
|
theme = 18
|
||||||
|
border_type = 2
|
||||||
|
default_clipboard_format = 0
|
||||||
|
clipboard_app = 0
|
||||||
|
hist_size = 500
|
||||||
|
esc_delay = -1
|
9
dotfiles/.psqlrc
Normal file
9
dotfiles/.psqlrc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-- Switch pagers with :x and :xx commands
|
||||||
|
\set x '\\setenv PAGER ''less -S'''
|
||||||
|
\set xx '\\setenv PAGER \'pspg -bX --no-mouse\''
|
||||||
|
\timing on
|
||||||
|
\set QUIET 1
|
||||||
|
\pset linestyle unicode
|
||||||
|
-- \pset border 2
|
||||||
|
\pset null ∅
|
||||||
|
\unset QUIET
|
32
dotfiles/.tmux.conf
Normal file
32
dotfiles/.tmux.conf
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
set -g default-terminal 'screen-256color'
|
||||||
|
#attempt to navigate panes like vim
|
||||||
|
bind -r h select-pane -L # move left
|
||||||
|
bind -r j select-pane -D # move down
|
||||||
|
bind -r k select-pane -U # move up
|
||||||
|
bind -r l select-pane -R # move right
|
||||||
|
set -g mouse on
|
||||||
|
bind -n C-PgDn next-window
|
||||||
|
bind -n C-PgUp previous-window
|
||||||
|
|
||||||
|
#plugin manager for install tmux-resurrect
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||||
|
set -g @plugin 'jimeh/tmux-themepack'
|
||||||
|
set -g @themepack 'powerline/default/cyan'
|
||||||
|
#-----------------------nova---------------------------------------------
|
||||||
|
#set -g @plugin 'o0th/tmux-nova'
|
||||||
|
#set -g @nova-nerdfonts true
|
||||||
|
#set -g @nova-nerdfonts-left
|
||||||
|
#set -g @nova-nerdfonts-right
|
||||||
|
#set -g @nova-segment-mode "#{?client_prefix,Ω,ω}"
|
||||||
|
#set -g @nova-segment-mode-colors "#50fa7b #282a36"
|
||||||
|
#set -g @nova-segment-whoami "#(whoami)@#h"
|
||||||
|
#set -g @nova-segment-whoami-colors "#50fa7b #282a36"
|
||||||
|
#set -g @nova-pane "#I#{?pane_in_mode, #{pane_mode},} #W"
|
||||||
|
#set -g @nova-rows 0
|
||||||
|
#set -g @nova-segments-0-left "mode"
|
||||||
|
#set -g @nova-segments-0-right "whoami"
|
||||||
|
|
||||||
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|
75
dotfiles/.vimrc
Normal file
75
dotfiles/.vimrc
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
set nocompatible
|
||||||
|
filetype off
|
||||||
|
|
||||||
|
" set the runtime path to include Vundle and initialize
|
||||||
|
set rtp+=~/.vim/bundle/Vundle.vim
|
||||||
|
call vundle#begin()
|
||||||
|
" let Vundle manage Vundle, required
|
||||||
|
Plugin 'gmarik/Vundle.vim'
|
||||||
|
Plugin 'vim-airline/vim-airline'
|
||||||
|
Plugin 'kien/ctrlp.vim'
|
||||||
|
Plugin 'scrooloose/nerdtree'
|
||||||
|
"Plugin 'edkolev/tmuxline.vim'
|
||||||
|
Plugin 'vim-airline/vim-airline-themes'
|
||||||
|
Plugin 'leafgarland/typescript-vim'
|
||||||
|
Plugin 'peitalin/vim-jsx-typescript'
|
||||||
|
"Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
|
||||||
|
" All of your Plugins must be added before the following line
|
||||||
|
call vundle#end() " required
|
||||||
|
filetype plugin indent on " required
|
||||||
|
|
||||||
|
map <C-j> <C-W>j
|
||||||
|
map <C-k> <C-W>k
|
||||||
|
map <C-h> <C-W>h
|
||||||
|
map <C-l> <C-W>l
|
||||||
|
let NERDTreeShowHidden=1
|
||||||
|
set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab
|
||||||
|
set mouse=a
|
||||||
|
set nowrap
|
||||||
|
colorscheme desert
|
||||||
|
syntax on
|
||||||
|
set splitright
|
||||||
|
set splitbelow
|
||||||
|
set number
|
||||||
|
"---------explorer------
|
||||||
|
let g:netrw_banner = 0
|
||||||
|
let g:netrw_liststyle = 3
|
||||||
|
let g:netrw_browse_split = 4
|
||||||
|
let g:netrw_altv = 1
|
||||||
|
let g:netrw_winsize = 25
|
||||||
|
"----airline tabs for buffers-------
|
||||||
|
let g:airline#extensions#tabline#enabled = 1
|
||||||
|
let g:airline_theme = 'violet'
|
||||||
|
let g:airline_solarized_bg='dark'
|
||||||
|
let g:tmuxline_powerline_separators = 1
|
||||||
|
let g:airline_powerline_fonts = 1
|
||||||
|
"----markdown folding------------
|
||||||
|
"let g:vim_markdown_folding_disabled = 1
|
||||||
|
set nofoldenable " disable folding
|
||||||
|
"---general--------------------
|
||||||
|
let mapleader = ";"
|
||||||
|
set showcmd
|
||||||
|
map <Leader>a :bn<cr>
|
||||||
|
map <Leader>f :bp<cr>
|
||||||
|
map <Leader>d :bp<cr>:bd #<cr>
|
||||||
|
"---move the whole page without moving the cursor---
|
||||||
|
nnoremap J <C-E>
|
||||||
|
nnoremap K <C-Y>
|
||||||
|
"-----nerdtree--------------------
|
||||||
|
nmap <Leader>e :NERDTreeToggle<CR>
|
||||||
|
" Search as you type, highlight results
|
||||||
|
set incsearch
|
||||||
|
set showmatch
|
||||||
|
set hlsearch
|
||||||
|
set mouse=a
|
||||||
|
"----disable the bell; t_vb is required to be set to nothing
|
||||||
|
set visualbell
|
||||||
|
set t_vb=
|
||||||
|
nnoremap \\ :noh<cr> " Clear higlighting
|
||||||
|
set nowrap
|
||||||
|
"nnoremap <esc> :noh<return><esc>
|
||||||
|
" Resize windows
|
||||||
|
nnoremap <silent> <Up> 5<C-W>+
|
||||||
|
nnoremap <silent> <Down> 5<C-W>-
|
||||||
|
nnoremap <silent> <Right> 10<C-W>>
|
||||||
|
nnoremap <silent> <Left> 10<C-W><
|
12
install_postgres.sh
Executable file
12
install_postgres.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
# Create the file repository configuration:
|
||||||
|
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||||
|
|
||||||
|
# Import the repository signing key:
|
||||||
|
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
||||||
|
|
||||||
|
# Update the package lists:
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
|
# Install the latest version of PostgreSQL.
|
||||||
|
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
|
||||||
|
sudo apt-get -y install postgresql
|
24
install_python3.sh
Executable file
24
install_python3.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Update the package list
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
|
# Install the software-properties-common package
|
||||||
|
sudo apt-get install software-properties-common
|
||||||
|
|
||||||
|
# Add the deadsnakes PPA to the sources list
|
||||||
|
sudo add-apt-repository ppa:deadsnakes/ppa
|
||||||
|
|
||||||
|
# Update the package list again
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
|
# Check the latest version of Python 3 available
|
||||||
|
latest_version=$(apt-cache madison python3 | awk '{print $3}' | grep "^3\." | sort -V | tail -1)
|
||||||
|
|
||||||
|
# Install the latest version of Python 3
|
||||||
|
sudo apt-get install -y python3=$latest_version
|
||||||
|
|
||||||
|
# Verify the installation
|
||||||
|
python3 --version
|
||||||
|
which python3
|
||||||
|
|
79
setup_env.sh
Executable file
79
setup_env.sh
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to install packages
|
||||||
|
install_packages() {
|
||||||
|
echo "Updating package list..."
|
||||||
|
sudo apt update
|
||||||
|
echo "Installing basic packages..."
|
||||||
|
sudo apt install -y tmux vim git pspg bat fzf ripgrep
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install Tmux Plugin Manager (TPM) if not already installed
|
||||||
|
install_tpm() {
|
||||||
|
if [[ ! -d ~/.tmux/plugins/tpm ]]; then
|
||||||
|
echo "Installing Tmux Plugin Manager..."
|
||||||
|
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||||
|
else
|
||||||
|
echo "Tmux Plugin Manager already installed, skipping..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install Vundle (Vim plugin manager) if not already installed
|
||||||
|
install_vundle() {
|
||||||
|
if [[ ! -d ~/.vim/bundle/Vundle.vim ]]; then
|
||||||
|
echo "Installing Vundle for Vim..."
|
||||||
|
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||||
|
else
|
||||||
|
echo "Vundle already installed, skipping..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install git-bash-prompt if not already installed
|
||||||
|
install_git_bash_prompt() {
|
||||||
|
if [[ ! -d ~/.bash-git-prompt ]]; then
|
||||||
|
echo "Installing git-bash-prompt..."
|
||||||
|
git clone https://github.com/magicmonty/bash-git-prompt.git ~/.bash-git-prompt --depth=1
|
||||||
|
else
|
||||||
|
echo "git-bash-prompt already installed, skipping..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Back up and create symlink
|
||||||
|
create_symlink() {
|
||||||
|
local target=$1
|
||||||
|
local link_name=$2
|
||||||
|
|
||||||
|
if [[ -L $link_name || -f $link_name ]]; then
|
||||||
|
echo "Backing up existing $link_name to ${link_name}.backup"
|
||||||
|
mv "$link_name" "${link_name}.backup"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Creating symlink: $link_name -> $target"
|
||||||
|
ln -s "$target" "$link_name"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deploy configuration files as symlinks
|
||||||
|
deploy_configs() {
|
||||||
|
echo "Deploying configuration files as symlinks..."
|
||||||
|
CONFIG_DIR="$(pwd)/dotfiles" # Use the local 'dotfiles' directory in the repo
|
||||||
|
|
||||||
|
for config in .bashrc .bashrc_local .vimrc .gitconfig .pspgconf .psqlrc .tmux.conf ; do
|
||||||
|
create_symlink "$CONFIG_DIR/$config" ~/$config
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Sourcing .bashrc..."
|
||||||
|
source ~/.bashrc
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main script
|
||||||
|
main() {
|
||||||
|
install_packages
|
||||||
|
install_tpm
|
||||||
|
install_vundle
|
||||||
|
install_git_bash_prompt
|
||||||
|
deploy_configs
|
||||||
|
echo "Setup complete! Please restart your shell or run 'source ~/.bashrc' for changes to take effect."
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
Loading…
Reference in New Issue
Block a user