From 14d0790f67213085a9231a5fb8ac267d84dd6c6a Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@derf.homelinux.org>
Date: Wed, 21 May 2008 17:22:29 +0200
Subject: bin/pkg: enable support of updating a single package

---
 bin/pkg | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/bin/pkg b/bin/pkg
index ccdfa07..b813538 100755
--- a/bin/pkg
+++ b/bin/pkg
@@ -66,19 +66,27 @@ pkg_remove () {
 }
 
 pkg_update () {
-	cd $PDIR
-	for i in *(/); {
-		echo_status "Updating package $i..."
-		check_deps "$i"
-		cd $i
-		$VCS_CMD $VCS_OPTIONS $VCS_UPDATE $VCS_UPDATE_OPTIONS
-		checklinks $CL_OPTIONS
-		if [ -f hooks/post-update ]; then
-			echo_status 'Executing post-update hook'
-			. hooks/post-update
-		fi
-		cd ..
-	}
+	cd $PDIR/$1
+	echo_status "Updating package $1"
+	check_deps $1
+	$VCS_CMD $VCS_OPTIONS $VCS_UPDATE $VCS_UPDATE_OPTIONS
+	checklinks $CL_OPTIONS
+	if [ -f hooks/post-update ]; then
+		echo_status 'Executing post-update hook'
+		. hooks/post-update
+	fi
+	cd ..
+}
+
+pkg_update_wrapper () {
+	if [ -n "$1" ]; then
+		pkg_update "$1"
+	else
+		cd $PDIR
+		for i in *(/); {
+			pkg_update "$i"
+		}
+	fi
 }
 
 pkg_changesrc () {
@@ -94,5 +102,5 @@ case "$1" in
 	add) pkg_add "$2" ;;
 	changeroot) pkg_changesrc "$2" ;;
 	remove) pkg_remove "$2" ;;
-	update) pkg_update ;;
+	update) pkg_update_wrapper "$2" ;;
 esac
-- 
cgit v1.2.3