Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-tools.git;a=commitdiff;h=53dfd1650cb762e8bbd2d40872c82bc0eef46ad7
commit 53dfd1650cb762e8bbd2d40872c82bc0eef46ad7 Author: Miklos Vajna <vmik...@frugalware.org> Date: Fri Jun 11 15:40:50 2010 +0200 repoman: error handling improvements diff --git a/repoman b/repoman index 23c883d..4c7c696 100755 --- a/repoman +++ b/repoman @@ -94,7 +94,7 @@ server() if [ $# -lt 3 ]; then echo "Too few parameters!" echo "usage: repoman server delete opts path file1 [file2..]" - return + return 1 fi local verbose="$1" path="$2" shift 2 @@ -102,7 +102,7 @@ server() cd $path if [ -e .git/lock ]; then echo "Couldn't get lock." - return + return 1 fi if [ -n "$verbose" ]; then rmopts="-v" @@ -137,7 +137,7 @@ server() if [ $# -lt 4 ]; then echo "Too few parameters!" echo "usage: repoman server upload path yourtmpfile sha1 targetfile" - return + return 1 fi local path="$1" tmp="$2" sha="$3" dest="$4" shift 4 @@ -145,12 +145,12 @@ server() cd $path if [ -e .git/lock ]; then echo "Couldn't get lock." - return + return 1 fi if ! echo "$sha $tmp" |sha1sum -c - >/dev/null 2>&1; then echo "The uploaded file is corrupted :-/" rm $tmp - return + return 1 fi # strip leading / and any .. mv -f $tmp "`echo $dest|sed 's|^/||;s|\.\./||g'`" @@ -161,7 +161,7 @@ server() if [ $# -lt 2 ]; then echo "Too few parameters!" echo "usage: repoman server list path file1 [file2..]" - return + return 1 fi local path="$1" shift @@ -179,7 +179,7 @@ server() if [ $# -lt 5 ]; then echo "Too few parameters!" echo "usage: repoman server changelog path fdb group pkg arch" - return + return 1 fi local path="$1" fdb="$2" group="$3" pkg="$4" arch="$5" shift 5 @@ -187,20 +187,20 @@ server() cd $path if [ -e .git/lock ]; then echo "Couldn't get lock." - return + return 1 else touch .git/lock fi if ! cd source/$group/$pkg; then echo "There is no package with this group!" rm -f .git/lock - return + return 1 fi startdir=`pwd` if ! source FrugalBuild; then echo "Failed to parse the FrugalBuid!" rm -f $(git rev-parse --show-cdup)/.git/lock - return + return 1 fi cd - >/dev/null cd frugalware-$arch @@ -209,13 +209,13 @@ server() if ! arch=$arch gensync ../source/$group/$pkg $fdb; then echo "gensync failed!" rm ../.git/lock - return + return 1 fi else if ! arch=$arch updatesync upd $fdb ../source/$group/$pkg/FrugalBuild; then echo "updatesync failed!" rm ../.git/lock - return + return 1 fi fi fi @@ -229,14 +229,14 @@ server() if [ $# -lt 4 ]; then echo "Too few parameters!" echo "usage: repoman server clean path fdb group pkg" - return + return 1 fi local path="$1" fdb="$2" group="$3" pkg="$4" check_absolute_path cd $path if [ -e .git/lock ]; then echo "Couldn't get lock." - return + return 1 else touch .git/lock fi @@ -248,12 +248,12 @@ server() echo "No package database to clean from!" cd - >/dev/null rm -f .git/lock - return + return 1 else if ! arch=$arch updatesync del $fdb $pkg; then echo "updatesync failed!" rm -f .git/lock - return + return 1 fi fi fi @@ -275,7 +275,7 @@ server() if [ $# -lt 3 ]; then echo "Too few parameters!" echo "usage: repoman server rsync path src arch" - return + return 1 fi local path="$1" srcurl="$2" arch="$3" shift 3 @@ -287,6 +287,7 @@ server() *) echo "Unknown server command!" + return 1 ;; esac } @@ -306,6 +307,7 @@ delete() fi msg "Deleting file(s): $*" $repoman_ssh $host "$sudo_cmd repoman server delete '$verbose' '$path' $*" + return $? } upload() @@ -365,7 +367,9 @@ upload() $repoman_scp $src $host:$tmp fi sha=`sha1sum $src|sed 's/\(.*\) .*/\1/'` - $repoman_ssh $host "$sudo_cmd repoman server upload '$path' '$tmp' '$sha' '$dest/$src'" + if ! $repoman_ssh $host "$sudo_cmd repoman server upload '$path' '$tmp' '$sha' '$dest/$src'"; then + return 1 + fi done } @@ -388,7 +392,9 @@ fpmmerge() mergearchs="`rsync -vP $srcurl/|grep ^d.*frugalware-|sed 's/.* //'`" for i in $mergearchs do - $repoman_ssh $host "$sudo_cmd repoman server rsync '$path' '${srcurl#*:}' '${i//frugalware-}'" + if ! $repoman_ssh $host "$sudo_cmd repoman server rsync '$path' '${srcurl#*:}' '${i//frugalware-}'"; then + return 1 + fi done # now push @@ -411,6 +417,7 @@ list() check_sudo msg "Fetching contents of: $*" $repoman_ssh $host "$sudo_cmd repoman server list '$path' $*" + return $? } split_group_pkg() @@ -434,7 +441,9 @@ clean() do msg "Cleaning up $i" split_group_pkg $i - $repoman_ssh $host "$sudo_cmd repoman server clean '$path' '$fdb' '$group' '$pkg'" + if ! $repoman_ssh $host "$sudo_cmd repoman server clean '$path' '$fdb' '$group' '$pkg'"; then + return 1 + fi done } @@ -450,6 +459,7 @@ changelog() fdb=$(eval "echo \$${reponame}_fdb") [ -z "$fdb" ] && fdb="$reponame.fdb" $repoman_ssh $host "$sudo_cmd repoman server changelog '$path' '$fdb' '$group' '$pkg' '$arch'" + return $? } _keypress() @@ -972,66 +982,82 @@ if [ "$1" != "" ]; then cl|changelog) shift 1 changelog $* + exit $? ;; c|clean) shift 1 clean $* + exit $? ;; del|delete) shift 1 delete $* + exit $? ;; server) shift 1 server "$@" + exit $? ;; ls|list) shift 1 list $* + exit $? ;; m|merge) shift 1 merge $* + exit $? ;; fpmmerge) shift 1 fpmmerge $* + exit $? ;; up|upload) shift 1 upload $* + exit $? ;; upd|update) shift 1 update $* + exit $? ;; s|search) shift 1 search $* + exit $? ;; rec|record) shift 1 record "$*" + exit $? ;; push) shift 1 push $* + exit $? ;; sync) shift 1 sync $* + exit $? ;; info) shift 1 info $* + exit $? ;; upgrade) shift 1 upgrade $* + exit $? ;; ci) shift 1 commit_info $* + exit $? ;; *) echo "Unknown command: $1" _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git