Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: /, bin/build/
Date: Thu, 05 Jun 2014 22:09:12
Message-Id: 1396468830.71e37945e29257ba8ad3dbc08ae5221986be450d.dywi@gentoo
1 commit: 71e37945e29257ba8ad3dbc08ae5221986be450d
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Tue Apr 1 22:48:36 2014 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Wed Apr 2 20:00:30 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=71e37945
7
8 bin/build/setver: versioning helper script
9
10 ---
11 VERSION | 1 +
12 bin/build/setver.sh | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++
13 2 files changed, 132 insertions(+)
14
15 diff --git a/VERSION b/VERSION
16 new file mode 100644
17 index 0000000..53a75d6
18 --- /dev/null
19 +++ b/VERSION
20 @@ -0,0 +1 @@
21 +0.2.6
22
23 diff --git a/bin/build/setver.sh b/bin/build/setver.sh
24 new file mode 100755
25 index 0000000..470e529
26 --- /dev/null
27 +++ b/bin/build/setver.sh
28 @@ -0,0 +1,131 @@
29 +#!/bin/sh
30 +#
31 +# Sets roverlay's version.
32 +#
33 +# Usage: setver [-S,--src <dir>] [--pretend] [--suffix <str>]
34 +# [+,pbump|++,mbump|Mbump|[setver] <ver>]
35 +#
36 +# Actions:
37 +# +, pbump -- increase patchlevel by one
38 +# ++, mbump -- increase minor version by one and set patchlevel to 0
39 +# Mbump -- increase major version by one and set minor/patchlevel to 0
40 +# setver <ver> -- set a specific version
41 +#
42 +# Options:
43 +# -S, --src <dir> -- set roverlay source directory (default: $PWD)
44 +# --pretend -- just show what would be done
45 +# --suffix <str> -- replace old version suffix with <str>
46 +#
47 +set -u
48 +IFS_DEFAULT="${IFS}"
49 +
50 +PY_FILES_TO_EDIT="roverlay/core.py setup.py"
51 +
52 +
53 +die() {
54 + echo "${1:-unknown error.}" 1>&2; exit ${2:-2};
55 +}
56 +
57 +parse_version() {
58 + local IFS="."
59 + set -- ${1}
60 + IFS="${IFS_DEFAULT}"
61 + [ ${#} -ge 3 ] || return 2
62 +
63 + major="${1:?}"
64 + minor="${2:?}"
65 + plvl="${3:?}"
66 + shift 3 || die "error in parse_version()"
67 + suffix="${*}"
68 +}
69 +
70 +inc() {
71 + v0=$(( ${1} + 1 ))
72 + [ ${v0} -gt ${1} ] || die "overflow"
73 +}
74 +
75 +S="${PWD}"
76 +unset -v V
77 +unset -v ACTION
78 +unset -v new_suffix
79 +unset -v do_pretend
80 +
81 +doshift=
82 +while [ ${#} -gt 0 ]; do
83 + doshift=1
84 + case "${1}" in
85 + '') : ;;
86 +
87 + '--src'|'-S')
88 + [ ${#} -ge 2 ] || die "argparse error"
89 + doshift=2
90 + S="${2:?}"
91 + ;;
92 +
93 + pretend|--pretend)
94 + do_pretend=true
95 + ;;
96 +
97 + [Mmp]bump) ACTION="${1}" ;;
98 + '+') ACTION=pbump ;;
99 + '++') ACTION=mbump ;;
100 + *.*.*) ACTION=setver; V="${1}" ;;
101 +
102 + setver)
103 + [ ${#} -ge 2 ] || die "argparse error"
104 + doshift=2
105 + ACTION=setver
106 + V="${2:?}"
107 + ;;
108 +
109 + suffix|--suffix)
110 + [ ${#} -ge 2 ] || die "argparse error"
111 + doshift=2
112 + new_suffix="${2?}"
113 + ;;
114 +
115 + *)
116 + die "unknown arg: ${1}" 64
117 + ;;
118 + esac
119 + [ ${doshift} -eq 0 ] || shift ${doshift} || die "argparse: shift failed"
120 +done
121 +
122 +: ${do_pretend:=false}
123 +OLDVER="$(cat "${S}/VERSION")"
124 +parse_version "${OLDVER}" || die "bad version: ${OLDVER}."
125 +[ -n "${new_suffix+SET}" ] || new_suffix="${suffix}"
126 +
127 +case "${ACTION-}" in
128 + pbump)
129 + inc "${plvl}"
130 + V="${major}.${minor}.${v0}${new_suffix}"
131 + ;;
132 + mbump)
133 + inc "${minor}"
134 + V="${major}.${v0}.0${new_suffix}"
135 + ;;
136 + Mbump)
137 + inc "${major}"
138 + V="${v0}.0.0${new_suffix}"
139 + ;;
140 + setver)
141 + true
142 + ;;
143 + *)
144 + die "unknown or no action specified."
145 + ;;
146 +esac
147 +
148 +q="\"\'"
149 +re_pyfile_ver="^(\s*version\s*=\s*)[${q}]?([^\s;,${q}]*)[${q}]?(\s*[;,]?\s*)\$"
150 +
151 +_fmt="edit %-18s: %8s -> %s\n"
152 +for fname in ${PY_FILES_TO_EDIT}; do
153 + f="${S}/${fname}"
154 + fver="$(sed -rn -e "s@${re_pyfile_ver}@\2@p" < "${f}")"
155 + printf "${_fmt}" "${fname}" "${fver}" "${V}"
156 + ${do_pretend} || sed -r -e "s@${re_pyfile_ver}@\1\"${V}\"\3@" -i "${f}"
157 +done
158 +printf "${_fmt}" "VERSION" "${OLDVER}" "${V}"
159 +${do_pretend} || echo "${V}" > "${S}/VERSION"