xref: /Universal-ctags/misc/git-tag-maybe.sh (revision eb8b8d90e3f7ab60b65ee3c71a1efd0fe5d73147)
1e9baeff4SMasatake YAMATO#!/bin/sh
2e9baeff4SMasatake YAMATO
3*eb8b8d90Sleleliu008set -e
4*eb8b8d90Sleleliu008
5*eb8b8d90Sleleliu008##################################### util #######################################
6*eb8b8d90Sleleliu008
7*eb8b8d90Sleleliu008COLOR_RED='\033[0;31m'          # Red
8*eb8b8d90Sleleliu008COLOR_GREEN='\033[0;32m'        # Green
9*eb8b8d90Sleleliu008COLOR_PURPLE='\033[0;35m'       # Purple
10*eb8b8d90Sleleliu008COLOR_OFF='\033[0m'             # Reset
11*eb8b8d90Sleleliu008
12*eb8b8d90Sleleliu008note() {
13*eb8b8d90Sleleliu008    printf '\n%b\n' "${COLOR_RED}$*${COLOR_OFF}"
14*eb8b8d90Sleleliu008}
15*eb8b8d90Sleleliu008
16*eb8b8d90Sleleliu008run() {
17*eb8b8d90Sleleliu008    printf '%b\n' "${COLOR_PURPLE}==>${COLOR_OFF} ${COLOR_GREEN}$*${COLOR_OFF}"
18*eb8b8d90Sleleliu008    eval "$*"
19*eb8b8d90Sleleliu008}
20*eb8b8d90Sleleliu008
21*eb8b8d90Sleleliu008##################################### main #######################################
22*eb8b8d90Sleleliu008
23e9baeff4SMasatake YAMATObase=5.9
24e9baeff4SMasatake YAMATOcal=$(date +%Y%m%d)
25e9baeff4SMasatake YAMATOchicken=0
26*eb8b8d90Sleleliu008new_tagname="p${base}.${cal}.${chicken}"
27e9baeff4SMasatake YAMATO
28*eb8b8d90Sleleliu008run git --version
29*eb8b8d90Sleleliu008
30*eb8b8d90Sleleliu008case "$(git describe --tags --exact-match HEAD 2>/dev/null || true)" in
31e9baeff4SMasatake YAMATO    p*.0)
32*eb8b8d90Sleleliu008        note "do nothing. because there are no commits since the latest tag."
33e9baeff4SMasatake YAMATO        exit 0
34e9baeff4SMasatake YAMATO        ;;
35*eb8b8d90Sleleliu008    '') ;;
36*eb8b8d90Sleleliu008    *)  echo "found a tag but it is not periodical one; create a periodical tag"
37e9baeff4SMasatake YAMATOesac
38e9baeff4SMasatake YAMATO
39*eb8b8d90Sleleliu008for old_tagname in $(git tag --list)
40*eb8b8d90Sleleliu008do
41*eb8b8d90Sleleliu008    if [ "$old_tagname" = "$new_tagname" ] ; then
42*eb8b8d90Sleleliu008        note "do nothing. because $new_tagname tag already exists."
43*eb8b8d90Sleleliu008        exit 0
44e9baeff4SMasatake YAMATO    fi
45*eb8b8d90Sleleliu008done
46*eb8b8d90Sleleliu008
47*eb8b8d90Sleleliu008run git tag "$new_tagname"
48*eb8b8d90Sleleliu008run git push origin "$new_tagname"
49