1 | #!/bin/bash
|
2 |
|
3 | set -e
|
4 |
|
5 | HOME=`pwd`
|
6 | AWK=/usr/bin/awk
|
7 | HEAD=/usr/bin/head
|
8 | GIT=/usr/bin/git
|
9 | SORT=/usr/bin/sort
|
10 | DCH=/usr/bin/dch
|
11 | PR=/usr/bin/pr
|
12 | SED=/bin/sed
|
13 | FMT=/usr/bin/fmt
|
14 | PR=/usr/bin/pr
|
15 | XARGS=/usr/bin/xargs
|
16 | CUT=/usr/bin/cut
|
17 |
|
18 |
|
19 | cd $HOME/targets
|
20 | TARGETS=(*)
|
21 | echo "Targets: $TARGETS"
|
22 | cd $HOME
|
23 |
|
24 | PKG=openhim-core-js
|
25 |
|
26 | echo -n "Which version of the OpenHIM (from NPM) would you like this package to install? (eg. 1.3.0) "
|
27 | read OPENHIM_VERSION
|
28 |
|
29 | if [ -z "$OPENHIM_VERSION" ]; then
|
30 | echo "Please supply a valid openhim-core version."
|
31 | exit 1
|
32 | fi
|
33 |
|
34 | echo -n "Would you like to upload the build(s) to Launchpad? [y/N] "
|
35 | read UPLOAD
|
36 | if [[ "$UPLOAD" == "y" || "$UPLOAD" == "Y" ]]; then
|
37 | if [ -n "$LAUNCHPADPPALOGIN" ]; then
|
38 | echo Using $LAUNCHPADPPALOGIN for Launchpad PPA login
|
39 | echo "To Change You can do: export LAUNCHPADPPALOGIN=$LAUNCHPADPPALOGIN"
|
40 | else
|
41 | echo -n "Enter your launchpad login for the ppa and press [ENTER]: "
|
42 | read LAUNCHPADPPALOGIN
|
43 | echo "You can do: export LAUNCHPADPPALOGIN=$LAUNCHPADPPALOGIN to avoid this step in the future"
|
44 | fi
|
45 |
|
46 | if [ -n "${DEB_SIGN_KEYID}" ]; then
|
47 | echo Using ${DEB_SIGN_KEYID} for Launchpad PPA login
|
48 | echo "To Change You can do: export DEB_SIGN_KEYID=${DEB_SIGN_KEYID}"
|
49 | echo "For unsigned you can do: export DEB_SIGN_KEYID="
|
50 | else
|
51 | echo "No DEB_SIGN_KEYID key has been set. Will create an unsigned"
|
52 | echo "To set a key for signing do: export DEB_SIGN_KEYID=<KEYID>"
|
53 | echo "Use gpg --list-keys to see the available keys"
|
54 | fi
|
55 |
|
56 | echo -n "Enter the name of the PPA: "
|
57 | read PPA
|
58 | fi
|
59 |
|
60 |
|
61 | BUILDDIR=$HOME/builds
|
62 |
|
63 |
|
64 | for TARGET in "${TARGETS[@]}"
|
65 | do
|
66 | TARGETDIR=$HOME/targets/$TARGET
|
67 | RLS=`$HEAD -1 $TARGETDIR/debian/changelog | $AWK '{print $2}' | $AWK -F~ '{print $1}' | $AWK -F\( '{print $2}'`
|
68 | BUILDNO=$((${RLS##*-}+1))
|
69 |
|
70 | if [ -z "$BUILDNO" ]; then
|
71 | BUILDNO=1
|
72 | fi
|
73 |
|
74 | BUILD=${PKG}_${OPENHIM_VERSION}-${BUILDNO}~${TARGET}
|
75 | echo "Building $BUILD ..."
|
76 |
|
77 |
|
78 | cd $TARGETDIR
|
79 | echo "Updating changelog for build ..."
|
80 | $DCH -Mv "${OPENHIM_VERSION}-${BUILDNO}~${TARGET}" --distribution "${TARGET}" "Release Debian Build ${OPENHIM_VERSION}-${BUILDNO}. Find v${OPENHIM_VERSION} changelog here: https://github.com/jembi/openhim-core-js/releases"
|
81 |
|
82 |
|
83 | PKGDIR=${BUILDDIR}/${BUILD}
|
84 | rm -fr $PKGDIR
|
85 | mkdir -p $PKGDIR
|
86 | cp -R $TARGETDIR/* $PKGDIR
|
87 |
|
88 |
|
89 | $SED -i s/OPENHIM_VERSION=/OPENHIM_VERSION=$OPENHIM_VERSION/ $PKGDIR/home/openhim/bin/install_node.sh
|
90 | $SED -i s/OPENHIM_VERSION=/OPENHIM_VERSION=$OPENHIM_VERSION/ $PKGDIR/debian/postinst
|
91 |
|
92 |
|
93 | cd /tmp
|
94 | TGZ=`npm pack openhim-core@$OPENHIM_VERSION`
|
95 | tar xvzf $TGZ
|
96 | cd /tmp/package
|
97 | npm install --production
|
98 | mkdir -p $PKGDIR/usr/share/openhim-core
|
99 | mv /tmp/package/* $PKGDIR/usr/share/openhim-core
|
100 | rm -r /tmp/package
|
101 |
|
102 | cd $PKGDIR
|
103 | if [[ "$UPLOAD" == "y" || "$UPLOAD" == "Y" ]] && [[ -n "${DEB_SIGN_KEYID}" && -n "{$LAUNCHPADLOGIN}" ]]; then
|
104 | echo "Uploading to PPA ${LAUNCHPADPPALOGIN}/${PPA}"
|
105 |
|
106 | CHANGES=${BUILDDIR}/${BUILD}_source.changes
|
107 |
|
108 | DPKGCMD="dpkg-buildpackage -k${DEB_SIGN_KEYID} -S -sa "
|
109 | $DPKGCMD
|
110 | DPUTCMD="dput ppa:$LAUNCHPADPPALOGIN/$PPA $CHANGES"
|
111 | $DPUTCMD
|
112 | else
|
113 | echo "Not uploading to launchpad"
|
114 | DPKGCMD="dpkg-buildpackage -uc -us"
|
115 | $DPKGCMD
|
116 | fi
|
117 | done
|