summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Davis <jrcd83@gmail.com>2012-06-15 02:43:22 +0200
committerJustin Davis <jrcd83@gmail.com>2012-06-15 02:43:22 +0200
commit8f294e9fb0e139d54cafcdba791875ef4fea4c20 (patch)
tree565ef93a7cb521a74cb2892174ad1d2030f7360b
parent3e761dc5ad3699c24c182400a76ed3d532e1e7d5 (diff)
downloadgenpkg-8f294e9fb0e139d54cafcdba791875ef4fea4c20.tar.gz
genpkg-8f294e9fb0e139d54cafcdba791875ef4fea4c20.tar.xz
Cleanup pkg/dest when package is not found.
-rwxr-xr-xbin/genpkg8
-rwxr-xr-xbin/prepkg17
-rwxr-xr-xpreps/perl6
3 files changed, 21 insertions, 10 deletions
diff --git a/bin/genpkg b/bin/genpkg
index d9ffcc5..8cbd6ba 100755
--- a/bin/genpkg
+++ b/bin/genpkg
@@ -104,7 +104,13 @@ do
PREPSPATH="$prepd" PKGVAR="$vard" prepkg "$pkg" > PKGDATA
ret=$?
case $ret in
- 0) echo "$pkgd/$pkg" ;;
+ 0) echo "$pkgd/$pkg"
+ ;;
+ 101) # 101 from prepkg means cleanup
+ cd
+ rm -r "$pkgd/$pkg"
+ exit 1
+ ;;
*) rm PKGDATA
exit $ret
esac
diff --git a/bin/prepkg b/bin/prepkg
index 9d95a46..22356fa 100755
--- a/bin/prepkg
+++ b/bin/prepkg
@@ -4,8 +4,10 @@ prog=prepkg
err()
{
+ ret=$1
+ shift
echo "$prog: $*" 1>&2
- exit 1
+ exit $ret
}
basicmeta()
@@ -24,11 +26,11 @@ basicmeta()
case $# in
0) echo "usage: $prog [package name]" 1>&2
- exit 1
+ exit 2
esac
case "$PREPSPATH" in
-'') err "set PREPSPATH before calling $prog"
+'') err 2 "set PREPSPATH before calling $prog"
esac
for flav in "$PREPSPATH"/*
@@ -40,11 +42,14 @@ do
case "$prepret" in
100) ;; # loop
+ 101) exit 101 ;; # tell genpkg to cleanup
0) basicmeta
exit 0 ;;
- 1) err "$flav encountered an error" ;;
- *) err "$flav returned error code $prepret" ;;
+ 1) err 1 "$flav encountered an error" ;;
+ *) err 1 "$flav returned error code $prepret" ;;
esac
done
-err "no matching meta generator found for '$1'"
+echo "no matching meta generator found for '$1'" 1>&2
+exit 101
+
diff --git a/preps/perl b/preps/perl
index fe68323..5e88b06 100755
--- a/preps/perl
+++ b/preps/perl
@@ -82,9 +82,9 @@ sub main
if($guess){
return 100
}else{
- ## Return a hard error to prepkg if perl- package.
- err(qq{failed to find perl dist similar to '$dist'});
- return 1
+ ## If its a perl- package tell prepkg to cleanup.
+ print STDERR qq{$PROG: failed to find perl dist similar to '$dist'\n};
+ return 101
}
}
fetchdist($cpath);