diff --git a/iglupkg.sh b/iglupkg.sh index 9c3eb98..298f2ac 100755 --- a/iglupkg.sh +++ b/iglupkg.sh @@ -9,7 +9,7 @@ else export HOST_TRIPLE="$HOST_ARCH-unknown-linux-musl" fi -command -V bad 2>/dev/null || bad() { +command -V bad > /dev/null 2> /dev/null || bad() { shift "$@" } @@ -66,6 +66,10 @@ while [ ! -z "$1" ]; do --for-cross-dir) fatal '--for-cross-dir= requires an argument' ;; + --no-ext) + -n) + NOEXT=1 + ;; fbp) to_run="f b p" ;; @@ -150,7 +154,11 @@ pkgdir="$(pwd)/out/$pkgname$cross.$pkgver" _genmeta() { echo "[pkg]" - echo "pkgname=$pkgname" + if [ ! -z $@ ]; then + echo "pkgname=$pkgname-$@" + else + echo "pkgname=$pkgname" + fi echo "pkgver=$pkgver" echo "deps=$deps" echo "" @@ -162,12 +170,18 @@ _genmeta() { echo "" echo "[fs]" - cd "$pkgdir" + if [ ! -z $@ ]; then + cd "$pkgdir-$@" + else + cd "$pkgdir" + fi find * cd "$srcdir" } _f() { + echo "fetching $pkgname" + rm -rf "$pkgdir" rm -rf "$srcdir" mkdir -p "$srcdir" @@ -178,6 +192,8 @@ _f() { } _b() { + echo "building $pkgname" + rm -rf "$pkgdir" cd "$srcdir" [ -f .fetched ] || fatal 'must fetch before building' @@ -187,9 +203,12 @@ _b() { } _p() { + echo "packaging $pkgname" + rm -rf "$pkgdir" cd "$srcdir" [ -f .built ] || fatal 'must build before packaging' + mkdir -p "$pkgdir" package install -d "$pkgdir/usr/share/iglupkg/" @@ -201,6 +220,25 @@ _p() { else tar --owner=0 --group=0 -cf ../$pkgname$cross.$pkgver.tar * fi + + if [ $ext ] && [ ! -z $NOEXT ]; then + echo "$ext" | tr ":" "\n" | while read e; do + echo "packaging $pkgname-$e" + + cd "$srcdir" + mkdir -p "$pkgdir-$e" + package_$(echo $e | tr "-" "_") + + install -d "$pkgdir-$e/usr/share/iglupkg/" + cd "$srcdir" + _genmeta $e > "$pkgdir-$e/usr/share/iglupkg/$pkgname$cross" + cd "$pkgdir-$e" + if command -V zstd; then + tar --owner=0 --group=0 -cf ../$pkgname-$e$cross.$pkgver.tar.zst * -I zstd + else + tar --owner=0 --group=0 -cf ../$pkgname-$e$cross.$pkgver.tar * + fi + fi } if [ -z "$to_run" ]; then