slitaz-dev-tools annotate slitaz-release/slitaz-release @ rev 294
slitaz-release: tiny edits
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Sun Mar 19 10:00:19 2017 +0000 (2017-03-19) |
parents | af4dbddd22bb |
children | 0f84a16feb0f |
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@291 | 57 "") help; exit 0 ;; |
pankso@291 | 58 esac |
pankso@291 | 59 |
pankso@291 | 60 # |
paul@294 | 61 # Handle host specific tasks |
pankso@291 | 62 # |
pankso@291 | 63 case "$(hostname)" in |
pankso@291 | 64 |
pankso@291 | 65 tank) |
paul@294 | 66 # Build host with chroots and built ISOs |
pankso@291 | 67 slitaz="/home/slitaz" |
pankso@291 | 68 ;; |
pankso@291 | 69 |
pankso@291 | 70 mirror) |
paul@294 | 71 # Host packages and official ISOs |
pankso@291 | 72 packages="" |
pankso@291 | 73 ;; |
pankso@291 | 74 |
pankso@291 | 75 pangolin) |
pankso@291 | 76 # Host all Hg repositories |
pankso@291 | 77 repos="/home/slitaz/repos" |
pankso@291 | 78 |
pankso@291 | 79 # Stable wok |
pankso@291 | 80 title "Checking repo: wok-stable" |
pankso@291 | 81 cd $repos/wok-stable; hg up |
pankso@291 | 82 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 83 check_string "stable wok is not yet tagged to $version" |
pankso@291 | 84 |
pankso@291 | 85 # Cooking wok |
pankso@291 | 86 title "Checking repo: wok" |
pankso@291 | 87 cd $repos/wok; hg up |
pankso@291 | 88 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 89 check_string "cooking wok is not yet ready to be copied" ;; |
pankso@291 | 90 |
pankso@291 | 91 *) |
pankso@291 | 92 # Local Hg repos: set stable string and Hg tags |
pankso@291 | 93 for repo in slitaz-base-files slitaz-doc wok; do |
pankso@291 | 94 if [ ! -d "$local_repos/$repo" ]; then |
pankso@291 | 95 colorize 031 "Missing repos: $local_repos/$repo"; exit 1 |
pankso@291 | 96 fi |
pankso@291 | 97 done |
pankso@291 | 98 |
pankso@291 | 99 # /etc/slitaz-release |
pankso@291 | 100 title "Checking file: /etc/slitaz-release" |
pankso@291 | 101 base_files="$local_repos/slitaz-base-files/rootfs" |
pankso@291 | 102 slitaz_release=$(cat $base_files/etc/slitaz-release) |
pankso@291 | 103 check_string "slitaz-base-files must be modified and wok updated" |
pankso@291 | 104 |
pankso@291 | 105 # isolinux.cfg |
pankso@291 | 106 title "Checking file: isolinux.cfg" |
pankso@291 | 107 isolinux_cfg="$local_repos/wok/syslinux/stuff/isolinux.cfg" |
pankso@291 | 108 slitaz_release=$(grep "MENU TITLE" $isolinux_cfg | cut -d " " -f 6) |
pankso@291 | 109 check_string "syslinux package must be modified and wok updated" |
pankso@291 | 110 |
pankso@291 | 111 # slitaz-doc |
pankso@291 | 112 title "Checking repo: slitaz-doc" |
pankso@291 | 113 cd $local_repos/slitaz-doc |
pankso@291 | 114 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 115 check_string "slitaz-doc should provide relnotes and be tagged" |
pankso@291 | 116 |
pankso@291 | 117 # wok: the current cooking wok will be copied to wok-stable on |
paul@294 | 118 # Hg server and then it will continue its own life with security updates. |
paul@294 | 119 # Tagging the wok lets us have the initial state of the new release. |
pankso@291 | 120 title "Checking repo: wok" |
pankso@291 | 121 cd $local_repos/wok |
pankso@291 | 122 slitaz_release=$(hg parents --template '{latesttag}') |
pankso@291 | 123 check_string "the wok should be tagged to $version" |
pankso@291 | 124 |
pankso@291 | 125 echo "" ;; |
pankso@291 | 126 esac |
pankso@291 | 127 |
pankso@291 | 128 exit 0 |