slitaz-dev-tools rev 297

slitaz-release: finish pangolin checks and tasks
author Christophe Lincoln <pankso@slitaz.org>
date Sun Mar 19 18:38:05 2017 +0100 (2017-03-19)
parents 05111a5b9eda
children 478e3c929081
files slitaz-release/slitaz-release
line diff
     1.1 --- a/slitaz-release/slitaz-release	Sun Mar 19 17:47:03 2017 +0100
     1.2 +++ b/slitaz-release/slitaz-release	Sun Mar 19 18:38:05 2017 +0100
     1.3 @@ -10,8 +10,19 @@
     1.4  
     1.5  version="$1"
     1.6  
     1.7 -if [ "$2" ]; then
     1.8 -	local_repos="$2"
     1.9 +# Parse cmdline options and store values in a variable.
    1.10 +for opt in "$@"; do
    1.11 +	opt_name="${opt%%=*}"
    1.12 +	opt_name="$(echo -n "${opt_name#--}" | tr -c 'a-zA-Z0-9' '_')"
    1.13 +	case "$opt" in
    1.14 +		--*=*)	export  $opt_name="${opt#*=}" ;;
    1.15 +		--*)	export  $opt_name="yes" ;;
    1.16 +	esac
    1.17 +done
    1.18 +
    1.19 +# --repos=/path/to/local/repos
    1.20 +if [ "$repos" ]; then
    1.21 +	local_repos="$repos"
    1.22  else
    1.23  	local_repos="$HOME/Projects"
    1.24  fi
    1.25 @@ -19,7 +30,11 @@
    1.26  help() {
    1.27  	cat << EOT
    1.28  
    1.29 -$(colorize 032 "Usage:") slitaz-release [version] [repos_path]
    1.30 +$(colorize 38 "Usage:")	slitaz-release [version] [--options]
    1.31 +
    1.32 +$(colorize 38 "Options:")
    1.33 +	--repos=
    1.34 +	--now
    1.35  
    1.36  $(colorize 033 "Local repos   :") $local_repos
    1.37  $(colorize 033 "Documentation :") http://www.slitaz.org/en/devel/release.php
    1.38 @@ -43,9 +58,11 @@
    1.39  
    1.40  check_string() {
    1.41  	if [ "$slitaz_release" != "$version" ]; then
    1.42 +		read=1
    1.43  		colorize 031 "Wrong string: $slitaz_release"
    1.44  		echo " * $1"
    1.45  	else
    1.46 +		ready=0
    1.47  		colorize 031 "SliTaz release: $version"
    1.48  	fi
    1.49  }
    1.50 @@ -59,6 +76,7 @@
    1.51  		echo -n "Hostname:"; hostname ;;
    1.52  		
    1.53  	"") help; exit 0 ;;
    1.54 +	
    1.55  esac
    1.56  
    1.57  #
    1.58 @@ -79,26 +97,48 @@
    1.59  	pangolin) 
    1.60  		# Host all Hg repositories
    1.61  		repos="/home/slitaz/repos"
    1.62 +		backups="/home/slitaz/backups"
    1.63  		
    1.64  		# Stable wok
    1.65  		title "Checking repo: wok-stable" 
    1.66 -		cd $repos/wok-stable; hg up
    1.67 +		cd ${repos}/wok-stable; hg up
    1.68  		slitaz_release=$(hg parents --template '{latesttag}')
    1.69  		check_string "stable wok is not yet tagged to $version"
    1.70  		
    1.71  		# Cooking wok
    1.72  		title "Checking repo: wok"
    1.73 -		cd $repos/wok; hg up
    1.74 +		cd ${repos}/wok; hg up
    1.75  		slitaz_release=$(hg parents --template '{latesttag}')
    1.76 -		check_string "cooking wok is not yet ready to be copied" 
    1.77 +		check_string "cooking wok is not yet ready to be copied"
    1.78  		
    1.79 -		newline ;;
    1.80 +		# Ready for --now ?
    1.81 +		if [ "$now" ] && [ "$ready" == 0 ]; then
    1.82 +			echo "Releasing SliTaz: $version"
    1.83 +			cd ${repos}/wok-stable; hg up
    1.84 +			previous_release=$(hg parents --template '{latesttag}')
    1.85 +			echo "Previous release string: $previous_release"
    1.86 +			
    1.87 +			echo "Archiving current wok-stable..."
    1.88 +			cd ${repos}
    1.89 +			tar czf wok-stable-${previous_release}.tar.gz wok-stable
    1.90 +			mv wok-stable-${previous_release}.tar.gz ${backups}
    1.91 +			
    1.92 +			echo "Copying current wok to wok-stable"
    1.93 +			rm -rf wok-stable && cp -a wok wok-stable
    1.94 +			
    1.95 +		else
    1.96 +			echo "Not yet ready to release SliTaz $version on $(hostname)"
    1.97 +		fi
    1.98 +		
    1.99 +		echo "" ;;
   1.100  	
   1.101  	*)
   1.102  		# Local Hg repos: set stable string and Hg tags
   1.103  		for repo in slitaz-base-files slitaz-doc wok; do
   1.104  			if [ ! -d "$local_repos/$repo" ]; then
   1.105 -				colorize 031 "Missing repos: $local_repos/$repo"; exit 1
   1.106 +				echo ""
   1.107 +				colorize 031 "Missing repos: $local_repos/$repo"
   1.108 +				help; exit 1
   1.109  			fi
   1.110  		done
   1.111  		
   1.112 @@ -116,7 +156,7 @@
   1.113  		
   1.114  		# slitaz-doc
   1.115  		title "Checking repo: slitaz-doc" 
   1.116 -		cd $local_repos/slitaz-doc
   1.117 +		cd ${local_repos}/slitaz-doc
   1.118  		slitaz_release=$(hg parents --template '{latesttag}')
   1.119  		check_string "slitaz-doc should provide relnotes and be tagged"
   1.120  		
   1.121 @@ -124,9 +164,16 @@
   1.122  		# Hg server and then it will continue its own life with security updates.
   1.123  		# Tagging the wok lets us have the initial state of the new release.
   1.124  		title "Checking repo: wok" 
   1.125 -		cd $local_repos/wok
   1.126 +		cd ${local_repos}/wok
   1.127  		slitaz_release=$(hg parents --template '{latesttag}')
   1.128  		check_string "the wok should be tagged to $version"
   1.129 +		echo ""
   1.130 +		
   1.131 +		if [ "$ready" == 0 ]; then
   1.132 +			echo "Ready for release SliTaz $version :-)"
   1.133 +		else
   1.134 +			echo "Not yet ready to release SliTaz $version"
   1.135 +		fi
   1.136  		
   1.137  		echo "" ;;
   1.138  esac