Merge github with local changes at workplace

This commit is contained in:
Talia 2018-11-26 09:27:19 +01:00
commit 2cb25c9c5b
4 changed files with 354 additions and 192 deletions

68
bashrc
View file

@ -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
View 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
View 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
View file

@ -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 ===