curl -f '-#' -z "$rf" -o "$rf.tmp" "$url"
rv=$?
else
- curl -f '-#' -o "$rf" "$url" && refresh "$repo"
+ curl -f '-#' -o "$rf.tmp" "$url" && refresh "$repo"
rv=$?
fi
if [ $rv -eq 0 ]; then
- test -f "$rf.tmp" && mv "$rf.tmp" "$rf"
+ test -f "$rf.tmp" &&
+ zpm test "$rf.tmp" &&
+ mv "$rf.tmp" "$rf"
refresh "$repo"
fi
done
done
}
+purge() {
+ repo=$1
+ shift
+ url=$(select "$repo" url)
+ base=${url%/*}
+ for package in "$@"; do
+ pkgid=$(zpm findpkg -f $repodir/$repo.repo $package)
+ if [ -z "$pkgid" ]; then
+ warn "no package found for $package"
+ else
+ mkdir -p "$repodir/$repo"
+ dest="$repodir/$repo/$pkgid.zpm"
+
+ if [ -f "$dest" ]; then
+ rm $dest
+ fi
+ zpm rmpackage -f $repodir/$repo.repo $pkgid
+ fi
+ done
+}
+
check_for_repo() {
rn=$(select "$1" name)
if [ -z "$rn" ]; then
name=$(zpm quote "$1")
zpm shell $ZPMDB "delete from repository where name = '$name'"
rm -f $repodir/$1.repo
- # TODO delete caches
+ test -d "$repodir/$repo" && rm -r "$repodir/$repo"
;;
url)
if [ -n "$2" ]; then
shift
zpm list -f $repodir/$repo.repo "$@"
;;
+ contents)
+ repo=$1
+ shift
+ zpm contents -f $repodir/$repo.repo "$@"
+ ;;
+ purge)
+ purge "$@"
+ ;;
+
*)
echo unknown action
exit 1