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