about summary refs log tree commit diff
path: root/xbulk
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2014-09-15 03:02:06 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2014-09-15 03:02:06 +0200
commit2b1a69f7a18c8fc74eb44964089264d58b23482d (patch)
tree243f7c490ac9488ca04429894fef1880b10cfb54 /xbulk
parent8220996bc5e6a85c598552a212783992811857d6 (diff)
downloadxtools-2b1a69f7a18c8fc74eb44964089264d58b23482d.tar.gz
xtools-2b1a69f7a18c8fc74eb44964089264d58b23482d.tar.xz
xtools-2b1a69f7a18c8fc74eb44964089264d58b23482d.zip
xbulk: only build packages given on command line, resolve subpkgs
Diffstat (limited to 'xbulk')
-rwxr-xr-xxbulk31
1 files changed, 22 insertions, 9 deletions
diff --git a/xbulk b/xbulk
index 4fe17f1..833910f 100755
--- a/xbulk
+++ b/xbulk
@@ -1,20 +1,33 @@
 #!/bin/sh
-# xbulk [-n] [-k] [-xbps_src_flags] PKG... - simple XBPS bulk builder
+# xbulk [-n] [-k] [xbps-src flags...] PKGS... - simple XBPS bulk builder
 
 ARGS=
 MAKEARGS=
+PKGS=
+
+mainpkg() {
+	dir=$(readlink -f srcpkgs/"$1")
+	echo ${dir##*/}
+}
 
-{
 for pkg; do
-case $pkg in
-	-n|-k) MAKEARGS="$MAKEARGS $pkg";;
-	-*) ARGS="$ARGS $pkg";;
-	*)
+	case $pkg in
+		-n|-k) MAKEARGS="$MAKEARGS $pkg";;
+		-*) ARGS="$ARGS $pkg";;
+		*) PKGS="$PKGS
+$(mainpkg $pkg)"
+	esac
+done
+
+{
+for pkg in $PKGS; do
 	echo all: pkg-$pkg
-	for dep in $(./xbps-src show-build-deps $pkg | sed '1d;s|[<>].*$||g'); do
-		echo pkg-$pkg: pkg-$dep
+	for dep in $(./xbps-src show-build-deps $pkg |
+			sed '1d;s|[<>].*$||g'); do
+		mainpkg $dep |
+		grep -Fx "$PKGS" |
+		sed 's/^/pkg-'$pkg': pkg-/'
 	done
-esac
 done
 printf '%s\n' pkg-%: "	pkg=\$@; ./xbps-src $ARGS pkg \$\${pkg#pkg-}"
 } | make -f - $MAKEARGS