diff --git a/puke b/puke index ec2e2045..9b55717e 100755 --- a/puke +++ b/puke @@ -175,6 +175,18 @@ pkg_remove() { return 0 } +pkg_updates() { + cd "$sys_dir/var/db/puke" + + for pkg in *; do + read -r db_version db_release < "$pkg/version" + read -r re_version re_release < "$old_pwd/repo/$pkg/version" + + [ "$db_version-$db_release" != "$re_version-$re_release" ] && + log "NEW $pkg $re_version-$re_release" + done +} + pkg_list() { [ "$1" ] && { [ -d "$sys_dir/var/db/puke/$1" ] || return 1 && return 0 @@ -188,7 +200,7 @@ pkg_list() { } args() { - [ -n "${1##l*}" ] && { + [ -n "${1##l*}" ] && [ -n "${1##u*}" ] && { mkdir -p sources build pkg/var/db/puke sys bin || die "Couldn't create directories at '$PWD'". @@ -219,8 +231,9 @@ args() { i*) pkg_install ;; l*) pkg_list "$2" ;; r*) pkg_remove || die "Package '$name' not installed" ;; + u*) pkg_updates ;; - *) log "$0 [build|checksum|depends|install|list|remove] [pkg]" ;; + *) log "$0 [build|checksum|depends|install|list|remove|update] [pkg]" esac }