cookutils diff cooker @ rev 79

cooker: add command rev so we can rebuild a specific revision
author Christophe Lincoln <pankso@slitaz.org>
date Sun May 08 00:09:36 2011 +0200 (2011-05-08)
parents a1c33e54c56b
children 1b9322fabdf3
line diff
     1.1 --- a/cooker	Sat May 07 23:23:59 2011 +0200
     1.2 +++ b/cooker	Sun May 08 00:09:36 2011 +0200
     1.3 @@ -45,6 +45,7 @@
     1.4    flavor|-f       Cook all packages of a flavor.
     1.5    list|-l         Cook all packages in the given list.
     1.6    cat|-c          Cook all packages of a category.
     1.7 +  rev|-r          Cook packages of a specific revision.
     1.8    all|-a          Find and cook all unbuilt packages.
     1.9  
    1.10  EOT
    1.11 @@ -211,10 +212,8 @@
    1.12  cook_list() {
    1.13  	for pkg in $(cat $cooklist)
    1.14  	do
    1.15 -		if [ ! -d "$wok/$pkg/install" ]; then
    1.16 -			cook $pkg || broken
    1.17 -			sed -i /^${pkg}$/d $cooklist
    1.18 -		fi
    1.19 +		cook $pkg || broken
    1.20 +		sed -i /^${pkg}$/d $cooklist
    1.21  	done
    1.22  }
    1.23  
    1.24 @@ -320,6 +319,19 @@
    1.25  			echo -e "\nSpecified list does not exist: $list\n" && exit 1
    1.26  		cp -a $list $cooklist
    1.27  		strip_blocked
    1.28 +		cook_order | tee $LOGS/cookorder.log ;;
    1.29 +	rev|-r)
    1.30 +		# Cook or recook a specific Hg revision.
    1.31 +		rev="$2"
    1.32 +		[ "$rev" ] || exit 0
    1.33 +		cd $wok
    1.34 +		log=$(hg log --rev=$rev --template "{files}\n" | cut -d "/" -f 1)
    1.35 +		rm -f $cooklist && touch $cooklist
    1.36 +		for pkg in $log
    1.37 +		do
    1.38 +			echo "$pkg" >> $cooklist
    1.39 +		done
    1.40 +		strip_blocked
    1.41  		cook_order | tee $LOGS/cookorder.log
    1.42  		cook_list ;;
    1.43  	all|-a)
    1.44 @@ -342,7 +354,7 @@
    1.45  		strip_blocked
    1.46  		echo "Packages to cook: $(cat $cooklist | wc -l)" | log
    1.47  		cook_order | tee $LOGS/cookorder.log
    1.48 -		cook_list && empty_command;;
    1.49 +		cook_list ;;
    1.50  	*)
    1.51  		# Default is to cook all commits.
    1.52  		[ "$1" ] && usage