From df6c03ef6b8e5ccda7e9c42c99fc4e71bb5a23d5 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Wed, 8 Oct 2008 19:00:06 +0200 Subject: Add on-demand update of remote list. Caution: Not yet 100% tested --- bin/pkg | 13 ++++++++++--- include/pkglist | 24 +++++++++++++++++++----- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/bin/pkg b/bin/pkg index 84f1c98..97b039b 100755 --- a/bin/pkg +++ b/bin/pkg @@ -1,6 +1,5 @@ #!/usr/bin/env zsh # pkg - /home package manager and zsh playground - typeset -a -U triggers ## @@ -199,9 +198,17 @@ list_type_local () { list_update_remote () { if [[ $PKG_PROTO = 'ssh' ]] { - scp -q $PKG_HOST:$PKG_PATH/.list .list-remote + ssh $PKG_HOST "$PKG_PATH/core/include/pkglist $PKG_PATH" > .list-remote + if (( newmode == 0 )) { + scp -q $PKG_HOST:$PKG_PATH/.list .list-remote + warn "The pkglist version on your packages_root is outdated, please update\n" + } } elif [[ $PKG_PROTO = 'file' ]] { - cp $PKG_ROOT/.list .list-remote + $PKG_PATH/core/include/pkglist $PKG_PATH > .list-remote + if (( newmode == 0 )) { + cp $PKG_ROOT/.list .list-remote + warn "The pkglist version on your packages_root is outdated, please update\n" + } } } diff --git a/include/pkglist b/include/pkglist index 2af4d4a..f4474ff 100755 --- a/include/pkglist +++ b/include/pkglist @@ -1,14 +1,28 @@ #!/usr/bin/env zsh -cd $1 || exit 100 +# Some backwards-compatibility foobar... +# XXX: Remove this as soon as everyone should have the new version +typeset -g -i newmode=0 +[[ -n $PDIR ]] && newmode=1 +(( newmode )) || cd $1 || exit 100 +(( newmode )) && cd /${(j:/:)${(s:/:)0}[1,-4]} -rm -f .list +(( newmode )) || rm -f .list for i in *(/,@); { if [[ -d $i/.git ]] { - echo -n "$i git " >> .list - git --git-dir=$i/.git log | fgrep commit | head -n 1 | cut -d ' ' -f 2 >> .list + if (( newmode )) { + echo -n "$i git " + git --git-dir=$i/.git log | fgrep commit | head -n 1 | cut -d ' ' -f 2 + } else { + echo -n "$i git " >> .list + git --git-dir=$i/.git log | fgrep commit | head -n 1 | cut -d ' ' -f 2 >> .list + } } else { - echo "Unsupported package: $i" >&2 + echo "$i: Unsupported or no repository" >&2 } } + +if (( newmode == 0 )) { + echo "Running pkglist manually or via cron is no longer neccessary and therefore depracated" >&2 +} -- cgit v1.2.3