slitaz-dev-tools annotate slitaz-release/slitaz-release @ rev 295
Fix to slitaz-release and improve tazcraft (work in progress, to be continued in it's own repo)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Mar 19 17:36:55 2017 +0100 (2017-03-19) |
parents | f369836fad7e |
children | af10ffa04919 |
rev | line source |
---|---|
pankso@291 | 1 #!/bin/sh |
pankso@291 | 2 # |
pankso@291 | 3 # slitaz-release - SliTaz stable and cooking release helper. The script |
paul@294 | 4 # will check hostname to handle host specific release tasks (tank, pangolin, |
pankso@291 | 5 # mirror, local) |
pankso@291 | 6 # |
pankso@291 | 7 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License |
pankso@291 | 8 # |
pankso@291 | 9 #. /lib/libtaz.sh # Is not installed on pangolin & mirror (slitaz 4.0) |
pankso@291 | 10 |
pankso@291 | 11 version="$1" |
pankso@291 | 12 |
pankso@291 | 13 if [ "$2" ]; then |
pankso@291 | 14 local_repos="$2" |
pankso@291 | 15 else |
pankso@291 | 16 local_repos="$HOME/Projects" |
pankso@291 | 17 fi |
pankso@291 | 18 |
pankso@291 | 19 help() { |
pankso@291 | 20 cat << EOT |
pankso@291 | 21 |
pankso@291 | 22 $(colorize 032 "Usage:") slitaz-release [version] [repos_path] |
pankso@291 | 23 |
pankso@291 | 24 $(colorize 033 "Local repos :") $local_repos |
pankso@291 | 25 $(colorize 033 "Documentation :") http://www.slitaz.org/en/devel/release.php |
pankso@291 | 26 |
pankso@291 | 27 EOT |
pankso@291 | 28 } |
pankso@291 | 29 |
pankso@291 | 30 # Colorize message |
pankso@291 | 31 colorize() { |
pankso@291 | 32 : ${color=$1} |
pankso@291 | 33 shift |
pankso@291 | 34 case "$color" in |
pankso@291 | 35 0*) echo -e "\\033[${color:-38}m$@\\033[39m" ;; |
pankso@291 | 36 *) echo -e "\\033[1;${color:-38}m$@\\033[0;39m" ;; |
pankso@291 | 37 esac; unset color |
pankso@291 | 38 } |
pankso@291 | 39 |
pankso@291 | 40 title() { |
pankso@291 | 41 echo ""; colorize 033 "$@" |
pankso@291 | 42 } |
pankso@291 | 43 |
pankso@291 | 44 check_string() { |
pankso@291 | 45 if [ "$slitaz_release" != "$version" ]; then |
pankso@291 | 46 colorize 031 "Wrong string: $slitaz_release" |
pankso@291 | 47 echo " * $1" |
pankso@291 | 48 else |
pankso@291 | 49 colorize 031 "SliTaz release: $version" |
pankso@291 | 50 fi |
pankso@291 | 51 } |
pankso@291 | 52 |
pankso@291 | 53 # |
pankso@291 | 54 # Handle commands |
pankso@291 | 55 # |
pankso@291 | 56 case "$1" in |
pankso@295 | 57 |
pankso@295 | 58 info) |
pankso@295 | 59 echo -n "Hostname:"; hostname ;; |
pankso@295 | 60 |
pankso@291 | 61 "") help; exit 0 ;; |
pankso@291 | 62 esac |
pankso@291 | 63 |
pankso@291 | 64 # |
paul@294 | 65 # Handle host specific tasks |
pankso@291 | 66 # |
pankso@291 | 67 case "$(hostname)" in |
pankso@291 | 68 |
pankso@291 | 69 tank) |
paul@294 | 70 # Build host with chroots and built ISOs |
pankso@291 | 71 slitaz="/home/slitaz" |
pankso@291 | 72 ;; |
pankso@291 | 73 |
pankso@291 | 74 mirror) |
paul@294 | 75 # Host packages and official ISOs |
pankso@291 | 76 packages="" |
pankso@291 | 77 ;; |
pankso@291 | 78 |
pankso@291 | 79 pangolin) |
pankso@291 | 80 # Host all Hg repositories |
pankso@291 | 81 repos="/home/slitaz/repos" |
pankso@291 | 82 |
pankso@291 | 83 # Stable wok |
pankso@291 | 84 title "Checking repo: wok-stable" |
pankso@291 | 85 cd $repos/wok-stable; hg up |
pankso@291 | 86 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 87 check_string "stable wok is not yet tagged to $version" |
pankso@291 | 88 |
pankso@291 | 89 # Cooking wok |
pankso@291 | 90 title "Checking repo: wok" |
pankso@291 | 91 cd $repos/wok; hg up |
pankso@291 | 92 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@295 | 93 check_string "cooking wok is not yet ready to be copied" |
pankso@295 | 94 |
pankso@295 | 95 newline ;; |
pankso@291 | 96 |
pankso@291 | 97 *) |
pankso@291 | 98 # Local Hg repos: set stable string and Hg tags |
pankso@291 | 99 for repo in slitaz-base-files slitaz-doc wok; do |
pankso@291 | 100 if [ ! -d "$local_repos/$repo" ]; then |
pankso@291 | 101 colorize 031 "Missing repos: $local_repos/$repo"; exit 1 |
pankso@291 | 102 fi |
pankso@291 | 103 done |
pankso@291 | 104 |
pankso@291 | 105 # /etc/slitaz-release |
pankso@291 | 106 title "Checking file: /etc/slitaz-release" |
pankso@291 | 107 base_files="$local_repos/slitaz-base-files/rootfs" |
pankso@291 | 108 slitaz_release=$(cat $base_files/etc/slitaz-release) |
pankso@291 | 109 check_string "slitaz-base-files must be modified and wok updated" |
pankso@291 | 110 |
pankso@291 | 111 # isolinux.cfg |
pankso@291 | 112 title "Checking file: isolinux.cfg" |
pankso@291 | 113 isolinux_cfg="$local_repos/wok/syslinux/stuff/isolinux.cfg" |
pankso@291 | 114 slitaz_release=$(grep "MENU TITLE" $isolinux_cfg | cut -d " " -f 6) |
pankso@291 | 115 check_string "syslinux package must be modified and wok updated" |
pankso@291 | 116 |
pankso@291 | 117 # slitaz-doc |
pankso@291 | 118 title "Checking repo: slitaz-doc" |
pankso@291 | 119 cd $local_repos/slitaz-doc |
pankso@291 | 120 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 121 check_string "slitaz-doc should provide relnotes and be tagged" |
pankso@291 | 122 |
pankso@291 | 123 # wok: the current cooking wok will be copied to wok-stable on |
paul@294 | 124 # Hg server and then it will continue its own life with security updates. |
paul@294 | 125 # Tagging the wok lets us have the initial state of the new release. |
pankso@291 | 126 title "Checking repo: wok" |
pankso@291 | 127 cd $local_repos/wok |
pankso@291 | 128 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 129 check_string "the wok should be tagged to $version" |
pankso@291 | 130 |
pankso@291 | 131 echo "" ;; |
pankso@291 | 132 esac |
pankso@291 | 133 |
pankso@291 | 134 exit 0 |