commit fb544a1

hovercats  ·  2025-06-04 05:07:36 +0000 UTC
parent a6471ba
add `u` flag for updating packages out-of-date packages. | couple minor adjustments
1 files changed,  +18, -8
M rcpm
M rcpm
+18, -8
 1@@ -74,13 +74,10 @@ fn packup_pkg {
 2 	pax -w . | gzip > $RCPM_CACHE/$pkg@$ver-$rev.tar.gz
 3 }
 4 
 5-fn check_pkgbuilt {
 6-	get_ver
 7+fn check_prebuilt {
 8 	if (test ! -f $RCPM_CACHE/$pkg@$ver-$rev.tar.gz) {
 9-		echo "$pkg is not built"
10-		exit 1
11+		echo $pkg is not built
12 	}
13-	if not status=()
14 }
15 
16 fn gen_manifest {
17@@ -92,8 +89,8 @@ fn gen_manifest {
18 
19 fn pkg_install {
20 	cd $RCPM_ROOT
21-	check_pkgbuilt
22-	gzip -dc $RCPM_CACHE/$pkg@$ver-$rev.tar.gz | pax -r
23+	get_ver
24+	check_prebuilt || gzip -dc $RCPM_CACHE/$pkg@$ver-$rev.tar.gz | pax -r
25 }
26 
27 fn pkg_build {
28@@ -140,6 +137,18 @@ fn rm_pkgs {
29 	}
30 }
31 
32+fn pkg_update {
33+	for (file in $RCPM_ROOT/$RCPM_DB/*) {
34+		pkg=`{basename $file}
35+		if (cmp -s $RCPM_ROOT/$RCPM_DB/$pkg/ver $RCPM_PATH/$pkg/ver) {
36+			echo $pkg is up to date
37+		}
38+		if not {
39+			pkg_build $pkg
40+		}
41+	}
42+}
43+
44 switch($1) {
45 	case b
46 		shift
47@@ -152,7 +161,6 @@ switch($1) {
48 		for (pkg) dl_pkg $pkg
49 	case h
50 		rcpm_help
51-		exit 0
52 	case i
53 		shift
54 		for (pkg) pkg_install $pkg
55@@ -175,6 +183,8 @@ switch($1) {
56 	case s
57 		shift
58 		for (pkg in $*) find $RCPM_PATH -type d -name $pkg
59+	case u
60+		pkg_update
61 	case *
62 		printf 'Error!\n'
63 		exit 1