Skip to content

Commit

Permalink
get repository from config
Browse files Browse the repository at this point in the history
  • Loading branch information
kmnk committed Jul 12, 2012
1 parent 9208bc4 commit ec0fa92
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 28 deletions.
3 changes: 2 additions & 1 deletion autoload/giti.vim
Expand Up @@ -121,7 +121,8 @@ endfunction"}}}
" local functions {{{
function! s:handle_error(res, param)"{{{
if v:shell_error
throw 'System error: git ' . a:param.command . "\n" . a:res
echo 'error occured on executing "git ' . a:param.command . '"'
echo a:res
return
else
return a:res
Expand Down
9 changes: 6 additions & 3 deletions autoload/giti/config.vim
Expand Up @@ -44,9 +44,12 @@ endfunction"}}}
function! giti#config#read(param)"{{{
let location = exists('a:param.location') ? '--' . a:param.location
\ : ''
return giti#system(join([
\ 'config', location, a:param.key
\ ]))
return substitute(giti#system_with_specifics({
\ 'command' : join([
\ 'config', location, a:param.key
\ ]),
\ 'ignore_error' : 1,
\ }), '\n\+$', '', '')
endfunction"}}}

function! giti#config#write(param)"{{{
Expand Down
60 changes: 36 additions & 24 deletions autoload/unite/kinds/giti/branch.vim
Expand Up @@ -42,17 +42,16 @@ let s:kind.action_table.delete = {
\ 'is_quit' : 1,
\}
function! s:kind.action_table.delete.func(candidate)"{{{
echo giti#branch#delete(a:candidate.action__name)

if !v:shell_error
" TODO: get repository from config branch remote
let arg = {
\ 'repository' : 'origin',
\ 'branch' : a:candidate.action__name
\ }
if s:is_deleting_remote_confirmed(arg)
echo giti#branch#delete_remote(arg)
endif
let branch = a:candidate.action__name
let repository = s:get_repository(branch)

echo giti#branch#delete(branch)

if len(repository) > 0 && !v:shell_error
echo s:delete_remote({
\ 'repository' : repository,
\ 'branch' : branch,
\ })
endif
endfunction"}}}
let s:kind.alias_table.rm = 'delete'
Expand All @@ -63,17 +62,16 @@ let s:kind.action_table.delete_force = {
\ 'is_quit' : 1,
\}
function! s:kind.action_table.delete_force.func(candidate)"{{{
echo giti#branch#delete_force(a:candidate.action__name)

if !v:shell_error
" TODO: get repository from config branch remote
let arg = {
\ 'repository' : 'origin',
\ 'branch' : a:candidate.action__name
\ }
if s:is_deleting_remote_confirmed(arg)
echo giti#branch#delete_remote(arg)
endif
let branch = a:candidate.action__name
let repository = s:get_repository(branch)

echo giti#branch#delete_force(branch)

if len(repository) > 0 && !v:shell_error
echo s:delete_remote({
\ 'repository' : repository,
\ 'branch' : branch,
\ })
endif
endfunction"}}}

Expand All @@ -92,8 +90,22 @@ endfunction"}}}

" local functions {{{
function! s:is_deleting_remote_confirmed(param)"{{{
let branch = a:param.branch
return input('delete remote branch "' . branch . '" ? [y/n] : ') == 'y' ? 1 : 0
return input('delete remote branch "' . a:param.branch . '" ? [y/n] : ') == 'y' ? 1 : 0
endfunction"}}}

function! s:get_repository(branch)"{{{
return giti#config#read({
\ 'location' : 'local',
\ 'key' : printf('branch.%s.remote', a:branch)
\ })
endfunction"}}}

function! s:delete_remote(param)"{{{
if s:is_deleting_remote_confirmed(a:param)
return giti#branch#delete_remote(a:param)
else
return 'canceled'
endif
endfunction"}}}
" }}}

Expand Down

0 comments on commit ec0fa92

Please sign in to comment.