]>
Commit | Line | Data |
---|---|---|
8a99d1b9 JT |
1 | #!/bin/sh |
2 | # mkrelease.sh: Creates a release suitable for distfiles.atheme.org. | |
3 | # | |
c530343c | 4 | # Copyright (c) 2007, 2011 atheme.org |
8a99d1b9 JT |
5 | # |
6 | # Permission to use, copy, modify, and/or distribute this software for | |
7 | # any purpose with or without fee is hereby granted, provided that the above | |
8 | # copyright notice and this permission notice appear in all copies. | |
9 | # | |
10 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
11 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
12 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
13 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | |
14 | # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
15 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
16 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |
17 | # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
18 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
19 | # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
20 | # | |
21 | ||
22 | if [ "x$1" = "x" ]; then | |
23 | echo "usage: $0 releasename [--automatic]" | |
24 | exit | |
25 | else | |
c530343c | 26 | PROGRAM=`pwd | sed "s:/scripts::" | awk -F/ '{print $NF}'` |
8a99d1b9 JT |
27 | RELEASENAME="$1" |
28 | fi | |
29 | ||
c530343c TV |
30 | if [[ $1 != $PROGRAM* ]]; then |
31 | echo "example: $0 $PROGRAM-1.2.3" | |
32 | exit | |
33 | fi | |
34 | ||
8a99d1b9 JT |
35 | if [ "x$2" = "x--automatic" ]; then |
36 | AUTOMATIC="yes" | |
37 | fi | |
38 | ||
c530343c | 39 | TIP=`git log -1 --pretty=oneline | cut -d" " -f1` |
8a99d1b9 JT |
40 | |
41 | WRKDIR=`pwd` | |
42 | ||
43 | if [ -d $RELEASENAME ]; then | |
44 | echo "Deleting previous release named $RELEASENAME." | |
45 | rm -rf $WRKDIR/$RELEASENAME/ | |
46 | fi | |
47 | ||
48 | echo "Making release named $RELEASENAME (tip $TIP)" | |
49 | ||
50 | echo | |
51 | echo "Building root: $RELEASENAME/" | |
c530343c | 52 | git archive $RELEASENAME |
8a99d1b9 JT |
53 | cd $RELEASENAME |
54 | sh autogen.sh | |
55 | rm -rf autogen.sh autom4te.cache | |
c530343c | 56 | rm -rf .gitignore |
8a99d1b9 JT |
57 | |
58 | # Run application specific instructions here. | |
59 | if [ -x "$WRKDIR/application.sh" ]; then | |
60 | . $WRKDIR/application.sh | |
61 | fi | |
62 | ||
63 | cd .. | |
64 | ||
0d3be78f JH |
65 | echo "Building $RELEASENAME.tar.gz from $RELEASENAME/" |
66 | tar zcf $RELEASENAME.tar.gz $RELEASENAME/ | |
8a99d1b9 | 67 | |
0d3be78f JH |
68 | echo "Building $RELEASENAME.tar.bz2 from $RELEASENAME/" |
69 | tar jcf $RELEASENAME.tar.bz2 $RELEASENAME/ | |
8a99d1b9 JT |
70 | |
71 | PUBLISH="yes" | |
72 | ||
73 | ok="0" | |
74 | if [ "x$AUTOMATIC" != "xyes" ]; then | |
75 | echo | |
76 | echo "Would you like to publish these releases now?" | |
77 | while [ $ok -eq 0 ]; do | |
78 | echo -n "[$PUBLISH] " | |
79 | ||
80 | read INPUT | |
81 | case $INPUT in | |
82 | [Yy]*) | |
83 | PUBLISH="yes" | |
84 | ok=1 | |
85 | ;; | |
86 | [Nn]*) | |
87 | PUBLISH="no" | |
88 | ok=1 | |
89 | ;; | |
90 | esac | |
91 | done | |
92 | fi | |
93 | ||
94 | if [ "x$PUBLISH" = "xyes" ]; then | |
a751cbef JT |
95 | scp $RELEASENAME.tgz hg.atheme.org:/srv/distfiles |
96 | scp $RELEASENAME.tbz2 hg.atheme.org:/srv/distfiles | |
8a99d1b9 JT |
97 | |
98 | echo | |
99 | echo "The releases have been published, and will be available to the entire" | |
100 | echo "distribution network within 15 minutes." | |
101 | fi | |
102 | ||
103 | echo | |
104 | echo "Done. If you have any bugs to report, report them against" | |
c530343c | 105 | echo "the distfiles.atheme.org component at http://jira.atheme.org" |
8a99d1b9 JT |
106 | echo "Thanks!" |
107 | echo |