From c3a5ac7f46fe05be62c0d86417df0953803b249b Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 21 Apr 2009 21:43:34 +0200 Subject: pkg: Made most of the vcs_ function independent of $PWD --- bin/pkg | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/bin/pkg b/bin/pkg index 9a13ad9..4846098 100755 --- a/bin/pkg +++ b/bin/pkg @@ -224,10 +224,17 @@ function progress { } ## VCS Wrappers + +function vcs_setup { + export GIT_DIR=$PDIR/$1/.git + export GIT_WORK_TREE=$PDIR/$1 +} + function vcs_to_list { + vcs_setup $1 if [[ -d $PDIR/$1/.git ]] { echo -n "$1 git " - echo ${$(git --git-dir=$PDIR/$1/.git log -n 1 master)[2]} + echo ${$(git log -n 1 master)[2]} } else { warn "No git repository found: $1\n" } @@ -241,10 +248,12 @@ function vcs_add { } function vcs_log { + vcs_setup $1 git log } function vcs_branch_master { + vcs_setup $1 typeset IFS=$'\n' branch line for line in $(git branch); { [[ $line == \*\ * ]] && branch=${line#* } @@ -258,33 +267,37 @@ function vcs_branch_master { } function vcs_pull { + vcs_setup $1 if ((GIT_USE_ORIGIN)) { # the package might be newly created and not have an origin yet - vcs_fix_origin + vcs_fix_origin $1 git pull } else { - vcs_branch_master && git pull $PKG_ROOT/${PWD:t} master + vcs_branch_master $1 && git pull $PKG_ROOT/${PWD:t} master } } function vcs_push { + vcs_setup $1 if ((GIT_USE_ORIGIN)) { # see above - vcs_fix_origin + vcs_fix_origin $1 git push } else { - vcs_branch_master && git push $PKG_ROOT/${PWD:t} master + vcs_branch_master $1 && git push $PKG_ROOT/${PWD:t} master } } function vcs_status { + vcs_setup $1 git status } # Set the correct origin function vcs_fix_origin { - if [[ ! -r .git/remotes/origin && ! -r .git/refs/remotes/origin/HEAD ]] { - fgrep '[remote "origin"]' .git/config &> /dev/null || + vcs_setup $1 + if [[ ! -r $GIT_DIR/remotes/origin && ! -r $GIT_DIR/refs/remotes/origin/HEAD ]] { + fgrep '[remote "origin"]' $GIT_DIR/config &> /dev/null || git remote add origin $PKG_ROOT/${PWD:t} } } @@ -676,7 +689,7 @@ function pkg_push { clear_line info "Pushing $1\n" global_hook $1 pre-update - vcs_push + vcs_push $1 global_hook $1 post-update fi } @@ -708,7 +721,7 @@ function pkg_upgrade { clear_line info "Updating $1 to $(list_version_remote $1)\n" global_hook $1 pre-update - vcs_pull + vcs_pull $1 global_hook $1 post-update fi } @@ -828,7 +841,7 @@ function pkg_info { function pkg_log { check_installed $1 cd $PDIR/$1 - vcs_log + vcs_log $1 } -- cgit v1.2.3