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