Merge github with local changes at workplace
This commit is contained in:
commit
2cb25c9c5b
4 changed files with 354 additions and 192 deletions
68
bashrc
68
bashrc
|
@ -23,5 +23,71 @@ stty -ixon
|
|||
# Enable Vi editing mode
|
||||
set -o vi
|
||||
|
||||
PS1='\[\033[00;34m\]┌─╼ \[\033[00;33m\]\$ \[\033[01;35m\]\u\[\033[00;34m\]@\[\033[01;35m\]\h\[\033[01;34m\] `date +%d.%m.%y` \[\033[01;35m\]\w\[\033[00m\]
|
||||
git__prompt () {
|
||||
git rev-parse --show-toplevel > /dev/null 2>&1
|
||||
if [ $? = 0 ]
|
||||
then
|
||||
branch=`git branch | grep -Po '(?<=\* )[[:alnum:]]*'`
|
||||
modif=`git status --short 2>/dev/null | grep -Po '^\s*M' | wc -l`
|
||||
untracked=`git status --short 2>/dev/null | grep -Po '^\?\?' | wc -l`
|
||||
added=`git status --short 2>/dev/null | grep -Po '^\s*A' | wc -l`
|
||||
deleted=`git status --short 2>/dev/null | grep -Po '^\s*D' | wc -l`
|
||||
stat=`git branch -vv | grep -P '^\*' | grep -Po '\[.*\]'`
|
||||
ahead=`echo $stat | grep -Po '(?<=ahead )\d*'`
|
||||
behind=`echo $stat | grep -Po '(?<=behind )\d*'`
|
||||
gray='\033[01;30m'
|
||||
blue='\033[01;34m'
|
||||
yellow='\033[01;33m'
|
||||
red='\033[01;31m'
|
||||
green='\033[01;32m'
|
||||
|
||||
if [ -z $branch ]
|
||||
then
|
||||
branch='#'`git rev-parse --short HEAD`
|
||||
fi
|
||||
if [ $branch = 'master' ]
|
||||
then
|
||||
echo -ne " $blue$branch"
|
||||
elif [ ${branch:0:1} = '#' ]
|
||||
then
|
||||
echo -ne " $red$branch"
|
||||
else
|
||||
echo -ne " $yellow$branch"
|
||||
fi
|
||||
|
||||
if [ $modif = 0 ]
|
||||
then
|
||||
echo -ne # "$gray:\033[01;36m$modif" # No modified files
|
||||
else
|
||||
echo -ne "$gray:\033[01;33m$modif" # Modified files
|
||||
fi
|
||||
if [ $added -ne 0 ]
|
||||
then
|
||||
echo -ne "${green}+$added"
|
||||
fi
|
||||
if [ $deleted -ne 0 ]
|
||||
then
|
||||
echo -ne "${red}-$deleted"
|
||||
fi
|
||||
if [ $untracked -ne 0 ]
|
||||
then
|
||||
echo -ne "${red}*"
|
||||
fi
|
||||
|
||||
if [ -z $ahead ] && [ -z $behind ]
|
||||
then
|
||||
echo -ne "" # Nothing to do here
|
||||
elif [ -z $ahead ]
|
||||
then
|
||||
echo -ne "${gray}:${yellow}↓${behind}"
|
||||
elif [ -z $behind ]
|
||||
then
|
||||
echo -ne "${gray}:${green}↑${ahead}"
|
||||
else
|
||||
echo -ne "${gray}:${red}↓${behind}${yellow}↑${ahead}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
PS1='\[\033[00;34m\]┌─╼ \[\033[00;33m\]\$ \[\033[01;35m\]\u\[\033[00;34m\]@\[\033[01;35m\]\h\[\033[01;34m\] `date +%d.%m.%y` \[\033[01;35m\]\w`git__prompt`\[\033[00m\]
|
||||
\[\033[00;34m\]└╼ \[\033[00m\]'
|
||||
|
|
75
conky.conf
Normal file
75
conky.conf
Normal file
|
@ -0,0 +1,75 @@
|
|||
-- vim: set filetype=lua :miv --
|
||||
conky.config = {
|
||||
double_buffer = true,
|
||||
update_interval = 1,
|
||||
alignment = 'bottom_right',
|
||||
gap_x = 100 + 320,
|
||||
gap_y = 100 + 200,
|
||||
own_window = true,
|
||||
own_window_title = 'conky',
|
||||
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||
own_window_argb_visual = true,
|
||||
own_window_transparent = true,
|
||||
border_inner_margin = 8,
|
||||
background = true,
|
||||
border_width = 1,
|
||||
cpu_avg_samples = 2,
|
||||
draw_borders = false,
|
||||
draw_graph_borders = true,
|
||||
draw_outline = false,
|
||||
draw_shades = false,
|
||||
use_xft = true,
|
||||
font = 'Quicksand:size=14',
|
||||
minimum_height = 5,
|
||||
minimum_width = 250,
|
||||
net_avg_samples = 2,
|
||||
no_buffers = false,
|
||||
out_to_console = false,
|
||||
out_to_stderr = false,
|
||||
extra_newline = false,
|
||||
stippled_borders = 0,
|
||||
uppercase = false,
|
||||
use_spacer = 'none',
|
||||
show_graph_scale = false,
|
||||
show_graph_range = false,
|
||||
default_color = '#666666',
|
||||
color1 = "#664444",
|
||||
color2 = "#888888",
|
||||
color3 = "#663333"
|
||||
}
|
||||
conky.text = [[$color3${time %Y-%m-%d}
|
||||
$color1${voffset -10}${font Quicksand:size=40}${time %H:%M}$font$color
|
||||
${color2}Uptime:$color $alignr$uptime
|
||||
#
|
||||
${color3}Stats $hr$color
|
||||
${color2}ip:$color $alignr${texeci 3 wget http://darkwiiplayer.com/api/ip --no-check-certificate -qO - }
|
||||
${color2}vpn:$color $alignr${execi 2 expressvpn status | grep -Po 'Not connected|(?<=Connected to).*$'}
|
||||
#
|
||||
#${color3}Location $hr$color
|
||||
#${color2}ip:$color $alignr${execi 2 ~/.bin/location}
|
||||
#
|
||||
${color3}Ping $hr
|
||||
${color2}Google: $color$alignr${execi 2 ping google.de -c 1 | grep -Po '(?<=time=).*'}
|
||||
${color2}Server: $color$alignr${execi 2 ping darkwiiplayer.com -c 1 | grep -Po '(?<=time=).*'}
|
||||
#
|
||||
${color3}CPU $hr
|
||||
$color$cpu%$color2 CPU Usage
|
||||
$color${cpubar 8}$color
|
||||
${color2}Frequency:$color $alignr$freq_g GHz
|
||||
#
|
||||
${color3}Memory $hr$color
|
||||
$color$memperc%${color2} RAM Usage
|
||||
$color${membar 8}$color
|
||||
$mem / $memmax
|
||||
${color2}Processes:$color $processes ${color2}Running:$color $running_processes
|
||||
#
|
||||
${color3}Storage $hr
|
||||
${color2}root $alignr$color${fs_used /}/${fs_size /}
|
||||
$color${fs_bar 8 /}
|
||||
${color2}data $alignr$color${fs_used /data}/${fs_size /data}
|
||||
$color${fs_bar 8 /data}
|
||||
#
|
||||
${color3}Networking $hr
|
||||
${color2}Up:$color ${upspeed enp3s0} ${color2} - Down:$color ${downspeed enp3s0}
|
||||
${font Hack:size=10}$color2$alignc${execi 1000 whoami}@${execi 1000 hostname}
|
||||
]]
|
209
git.vim
Normal file
209
git.vim
Normal file
|
@ -0,0 +1,209 @@
|
|||
" ┌─────────────────┐ "
|
||||
" └─┬─┬───┬─┬───┬─┬─┘ "
|
||||
" │ │ │ │ │ │ "
|
||||
" │ │ │ │ │ │ "
|
||||
" ┌─┴─┴───┴─┴───┴─┴─┐ "
|
||||
" ┌┘ Git Stuff └┐ "
|
||||
" └───────────────────┘ "
|
||||
|
||||
" Find the root of a git repository
|
||||
function! s:gitroot()
|
||||
let l:ret = substitute(system('git rev-parse --show-toplevel'), '\n\_.*', '', '')
|
||||
if v:shell_error
|
||||
throw l:ret
|
||||
else
|
||||
return l:ret
|
||||
end
|
||||
endf
|
||||
|
||||
function! s:git_root(path)
|
||||
let l:path = fnamemodify(a:path, ':p')
|
||||
let l:wd = getcwd()
|
||||
if isdirectory(l:path)
|
||||
exec 'cd '.a:path
|
||||
elseif filereadable(l:path)
|
||||
exec 'cd '.fnamemodify(l:path, ':h')
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
let l:ret = substitute(system('git rev-parse --show-toplevel'), '\n\_.*', '', '')
|
||||
if v:shell_error
|
||||
echom l:ret
|
||||
exec 'cd '.l:wd
|
||||
return 0
|
||||
else
|
||||
exec 'cd '.l:wd
|
||||
return l:ret
|
||||
end
|
||||
exec 'cd '.l:wd
|
||||
endf
|
||||
|
||||
" Returns an array containing chronologically sorted commits
|
||||
function! s:git_history()
|
||||
if exists("b:git_history")
|
||||
if b:git_history[0]+10 > localtime()
|
||||
return b:git_history[1]
|
||||
end
|
||||
end
|
||||
|
||||
if exists("b:git_original_file") " Is this already a file@revision buffer?
|
||||
let l:fname = b:git_original_file
|
||||
else
|
||||
let l:fname = substitute(expand("%"), "\\\\", "/", "g")
|
||||
end
|
||||
let l:commits = system('git log --format="%h" '.l:fname)
|
||||
let l:hist = split(l:commits, "\n")
|
||||
let b:git_history = [localtime(), l:hist]
|
||||
|
||||
return l:hist
|
||||
endfun
|
||||
|
||||
function! s:git_first()
|
||||
if &modified
|
||||
throw "File has unsaved modifications!"
|
||||
end
|
||||
call s:file_at_revision(get(s:git_history(), -1))
|
||||
endfun
|
||||
|
||||
function! s:git_last()
|
||||
if &modified
|
||||
throw "File has unsaved modifications!"
|
||||
end
|
||||
call s:file_at_revision(get(s:git_history(), 1, "HEAD"))
|
||||
endfun
|
||||
|
||||
function! s:git_info()
|
||||
if !exists("b:git_revision_hash") || !exists("b:git_original_file")
|
||||
echo "Not a file@revision buffer!"
|
||||
return
|
||||
end
|
||||
echo system("git show --no-patch ".b:git_revision_hash)
|
||||
endfun
|
||||
|
||||
function! s:git_next()
|
||||
if !exists("b:git_revision_hash") || !exists("b:git_original_file")
|
||||
echo "Error 01: Not a file@revision buffer!"
|
||||
return
|
||||
end
|
||||
let l:history = s:git_history()
|
||||
let l:idx = index(l:history, b:git_revision_hash)
|
||||
if l:idx == -1
|
||||
echo "Error 02"
|
||||
return
|
||||
end
|
||||
let l:new_revision = get(l:history, l:idx-1, "LAST")
|
||||
if l:new_revision=="LAST"
|
||||
throw "Already at last revision!"
|
||||
else
|
||||
call s:file_at_revision(l:new_revision)
|
||||
end
|
||||
endfun
|
||||
|
||||
function! s:git_prev()
|
||||
if !exists("b:git_revision_hash") || !exists("b:git_original_file")
|
||||
let l:new_revision = s:git_history()[0]
|
||||
else
|
||||
let l:history = s:git_history()
|
||||
let l:idx = index(l:history, b:git_revision_hash)
|
||||
if l:idx == -1
|
||||
echo "Error 03: cannot find revision ".b:git_revision_hash
|
||||
return
|
||||
end
|
||||
let l:new_revision = get(l:history, l:idx+1, "FIRST")
|
||||
end
|
||||
if l:new_revision=="FIRST"
|
||||
throw "Already at earliest revision!"
|
||||
else
|
||||
call s:file_at_revision(l:new_revision)
|
||||
end
|
||||
endfun
|
||||
|
||||
function! s:file_at_revision(rev)
|
||||
let l:pos = getpos(".")
|
||||
if exists("b:git_original_file") " Is this already a file@revision buffer?
|
||||
let l:fname = b:git_original_file
|
||||
let l:ftail = fnamemodify(b:git_original_file, ":t")
|
||||
else
|
||||
let l:fname = expand("%")
|
||||
let l:ftail = expand("%:t")
|
||||
end
|
||||
let l:fname = substitute(l:fname, "\\\\", "/", "g")
|
||||
let l:ftype = &filetype
|
||||
|
||||
ene!
|
||||
set modifiable
|
||||
silent exec "file ".l:ftail."@".a:rev
|
||||
exec "r!git show ".a:rev.":".l:fname
|
||||
1,1del
|
||||
let l:pos[0] = bufnr('.')
|
||||
call setpos('.', l:pos)
|
||||
setl nomodifiable
|
||||
setl buftype=nofile
|
||||
setl bufhidden=delete
|
||||
let &filetype = l:ftype
|
||||
|
||||
let b:git_original_file = l:fname
|
||||
let b:git_revision_hash = a:rev
|
||||
endfun
|
||||
|
||||
function! s:git_diff(...)
|
||||
if a:0
|
||||
vert bot split
|
||||
call s:file_at_revision(a:1)
|
||||
diffthis
|
||||
au BufUnload <buffer> diffoff!
|
||||
exec "normal \<C-w>\<C-p>"
|
||||
diffthis
|
||||
call s:git_info()
|
||||
else
|
||||
if exists("b:git_revision_hash")
|
||||
call s:git_diff(get(s:git_history(), index(s:git_history(), b:git_revision_hash)+1, "NIL"))
|
||||
else
|
||||
call s:git_diff(get(s:git_history(), 0, "HEAD"))
|
||||
end
|
||||
end
|
||||
endfun
|
||||
|
||||
function! s:git_blame()
|
||||
let l:name = expand('%')
|
||||
let l:line = getpos('.')[1]
|
||||
let l:char = getpos('.')[2]+59
|
||||
let l:type = &filetype
|
||||
enew
|
||||
set modifiable
|
||||
let &filetype = l:type
|
||||
set buftype=nofile
|
||||
set bufhidden=delete
|
||||
set nowrap
|
||||
silent exec "file Blame: ".l:name
|
||||
keepjumps exec 'r !git blame '.l:name
|
||||
keepjumps 0,0del "
|
||||
set nomodifiable
|
||||
keepjumps call setpos('.', [0, l:line, l:char, 0])
|
||||
endfun
|
||||
|
||||
command! Blame try
|
||||
\| call s:gitroot() | call <sid>git_blame()
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! GitNext try
|
||||
\| call s:gitroot() | call <sid>git_next() | call s:git_info()
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! GitPrev call <sid>git_prev() | call s:git_info()
|
||||
command! GitFirst call <sid>git_first() | call s:git_info()
|
||||
command! GitLast call <sid>git_last() | call s:git_info()
|
||||
command! GitInfo call <sid>git_info()
|
||||
command! -nargs=1 GitCheckout call <sid>file_at_revision(<f-args>)
|
||||
command! -nargs=? GitCompare try
|
||||
\| call s:gitroot() | call <sid>git_diff(<f-args>)
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! Uncommited try
|
||||
\| call s:gitroot() | call <sid>git_diff()
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! GitRoot try
|
||||
\| echo <sid>gitroot()
|
||||
\| catch | echo 'Not a git repository'
|
||||
\| endtry
|
194
vimrc
194
vimrc
|
@ -1,6 +1,8 @@
|
|||
" vim: set bufhidden=delete list noexpandtab :miv "
|
||||
"!!! makes use of marker '
|
||||
|
||||
let s:root = expand('<sfile>:p:h')
|
||||
|
||||
set nocompatible
|
||||
""""""""""""""""
|
||||
|
||||
|
@ -368,197 +370,7 @@ command! -nargs=* Hex call <sid>hex(<q-args>)
|
|||
|
||||
command! -range=% LuaCompile <line1>,<line2>w !luac -l -p -
|
||||
|
||||
" ┌─────────────────┐
|
||||
" └─┬─┬───┬─┬───┬─┬─┘
|
||||
" │ │ │ │ │ │
|
||||
" │ │ │ │ │ │
|
||||
" ┌─┴─┴───┴─┴───┴─┴─┐
|
||||
" ┌┘ Git Stuff └┐
|
||||
" └───────────────────┘
|
||||
|
||||
function! s:gitroot()
|
||||
let s:ret = substitute(system('git rev-parse --show-toplevel'), '\n\_.*', '', '')
|
||||
if v:shell_error
|
||||
throw s:ret
|
||||
else
|
||||
return s:ret
|
||||
end
|
||||
endf
|
||||
|
||||
function! s:git_history()
|
||||
if exists("b:git_history")
|
||||
if b:git_history[0]+10 > localtime()
|
||||
return b:git_history[1]
|
||||
end
|
||||
end
|
||||
|
||||
if exists("b:git_original_file") " Is this already a file@revision buffer?
|
||||
let l:fname = b:git_original_file
|
||||
else
|
||||
let l:fname = substitute(expand("%"), "\\\\", "/", "g")
|
||||
end
|
||||
let l:commits = system('git log --format="%h" '.l:fname)
|
||||
let l:hist = split(l:commits, "\n")
|
||||
let b:git_history = [localtime(), l:hist]
|
||||
|
||||
return l:hist
|
||||
endfun
|
||||
|
||||
function! s:git_first()
|
||||
if &modified
|
||||
echo "Save your changes first!"
|
||||
return
|
||||
end
|
||||
let l:history = s:git_history()
|
||||
call s:file_at_revision(get(l:history, -1))
|
||||
endfun
|
||||
|
||||
function! s:git_last()
|
||||
if &modified
|
||||
echo "Save your changes first!"
|
||||
return
|
||||
end
|
||||
let l:history = s:git_history()
|
||||
call s:file_at_revision(get(l:history, 1, "HEAD"))
|
||||
endfun
|
||||
|
||||
function! s:git_info()
|
||||
if !exists("b:git_revision_hash") || !exists("b:git_original_file")
|
||||
echo "Not a file@revision buffer!"
|
||||
return
|
||||
end
|
||||
echo system("git show --no-patch ".b:git_revision_hash)
|
||||
endfun
|
||||
|
||||
function! s:git_next()
|
||||
if !exists("b:git_revision_hash") || !exists("b:git_original_file")
|
||||
echo "Error 01: Not a file@revision buffer!"
|
||||
return
|
||||
end
|
||||
let l:history = s:git_history()
|
||||
let l:idx = index(l:history, b:git_revision_hash)
|
||||
if l:idx == -1
|
||||
echo "Error 02"
|
||||
return
|
||||
end
|
||||
let l:new_revision = get(l:history, l:idx-1, "LAST")
|
||||
if l:new_revision=="LAST"
|
||||
echo "Already at latest revision! ".l:new_revision
|
||||
return
|
||||
else
|
||||
call s:file_at_revision(l:new_revision)
|
||||
end
|
||||
endfun
|
||||
|
||||
function! s:git_prev()
|
||||
if !exists("b:git_revision_hash") || !exists("b:git_original_file")
|
||||
let l:new_revision = s:git_history()[0]
|
||||
else
|
||||
let l:history = s:git_history()
|
||||
let l:idx = index(l:history, b:git_revision_hash)
|
||||
if l:idx == -1
|
||||
echo "Error 03: cannot find revision ".b:git_revision_hash
|
||||
return
|
||||
end
|
||||
let l:new_revision = get(l:history, l:idx+1, "FIRST")
|
||||
end
|
||||
if l:new_revision=="FIRST"
|
||||
echo "Already at earliest revision! ".l:new_revision
|
||||
return
|
||||
else
|
||||
call s:file_at_revision(l:new_revision)
|
||||
end
|
||||
endfun
|
||||
|
||||
function! s:file_at_revision(rev)
|
||||
let l:pos = getpos(".")
|
||||
if exists("b:git_original_file") " Is this already a file@revision buffer?
|
||||
let l:fname = b:git_original_file
|
||||
let l:ftail = fnamemodify(b:git_original_file, ":t")
|
||||
else
|
||||
let l:fname = expand("%")
|
||||
let l:ftail = expand("%:t")
|
||||
end
|
||||
let l:fname = substitute(l:fname, "\\\\", "/", "g")
|
||||
let l:ftype = &filetype
|
||||
|
||||
ene!
|
||||
set modifiable
|
||||
silent exec "file ".l:ftail."@".a:rev
|
||||
exec "r!git show ".a:rev.":".l:fname
|
||||
1,1del
|
||||
let l:pos[0] = bufnr('.')
|
||||
call setpos('.', l:pos)
|
||||
setl nomodifiable
|
||||
setl buftype=nofile
|
||||
setl bufhidden=delete
|
||||
let &filetype = l:ftype
|
||||
|
||||
let b:git_original_file = l:fname
|
||||
let b:git_revision_hash = a:rev
|
||||
endfun
|
||||
|
||||
function! s:git_diff(...)
|
||||
if a:0
|
||||
vert bot split
|
||||
call s:file_at_revision(a:1)
|
||||
diffthis
|
||||
au BufUnload <buffer> diffoff!
|
||||
exec "normal \<C-w>\<C-p>"
|
||||
diffthis
|
||||
call s:git_info()
|
||||
else
|
||||
if exists("b:git_revision_hash")
|
||||
call s:git_diff(get(s:git_history(), index(s:git_history(), b:git_revision_hash)+1, "NIL"))
|
||||
else
|
||||
call s:git_diff(get(s:git_history(), 0, "HEAD"))
|
||||
end
|
||||
end
|
||||
endfun
|
||||
|
||||
function! s:git_blame()
|
||||
let l:name = expand('%')
|
||||
let l:line = getpos('.')[1]
|
||||
let l:char = getpos('.')[2]+59
|
||||
let l:type = &filetype
|
||||
enew
|
||||
set modifiable
|
||||
let &filetype = l:type
|
||||
set buftype=nofile
|
||||
set bufhidden=delete
|
||||
set nowrap
|
||||
silent exec "file Blame: ".l:name
|
||||
keepjumps exec 'r !git blame '.l:name
|
||||
keepjumps 0,0del "
|
||||
set nomodifiable
|
||||
keepjumps call setpos('.', [0, l:line, l:char, 0])
|
||||
endfun
|
||||
|
||||
command! Blame try
|
||||
\| call s:gitroot() | call <sid>git_blame()
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! GitNext try
|
||||
\| call s:gitroot() | call <sid>git_next() | call s:git_info()
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! GitPrev call <sid>git_prev() | call s:git_info()
|
||||
command! GitFirst call <sid>git_first() | call s:git_info()
|
||||
command! GitLast call <sid>git_last() | call s:git_info()
|
||||
command! GitInfo call <sid>git_info()
|
||||
command! -nargs=1 GitCheckout call <sid>file_at_revision(<f-args>)
|
||||
command! -nargs=? GitCompare try
|
||||
\| call s:gitroot() | call <sid>git_diff(<f-args>)
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! Uncommited try
|
||||
\| call s:gitroot() | call <sid>git_diff()
|
||||
\| catch | echo 'Not a git repo!'
|
||||
\| endtry
|
||||
command! GitRoot try
|
||||
\| echo <sid>gitroot()
|
||||
\| catch | echo 'Not a git repository'
|
||||
\| endtry
|
||||
exec 'so '.s:root.'/git.vim'
|
||||
|
||||
" === FILE STUFF ===
|
||||
|
||||
|
|
Loading…
Reference in a new issue