Last active
August 29, 2015 14:00
-
-
Save njordr/8200fc5b1bbee4c08df5 to your computer and use it in GitHub Desktop.
Changes to script to create a deb package for ubuntu 14.04 for zato
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if [[ -z "$1" ]] | |
then | |
echo Argument 1 must be branch name | |
exit 1 | |
fi | |
if [[ -z "$2" ]] | |
then | |
echo Argument 2 must be Zato version | |
exit 2 | |
fi | |
if [[ -z "$3" ]] | |
then | |
echo Argument 3 must be package version | |
exit 3 | |
fi | |
BRANCH_NAME=$1 | |
ZATO_VERSION=$2 | |
PACKAGE_VERSION=$3 | |
CURDIR="${BASH_SOURCE[0]}";RL="readlink";([[ `uname -s`=='Darwin' ]] || RL="$RL -f") | |
while([ -h "${CURDIR}" ]) do CURDIR=`$RL "${CURDIR}"`; done | |
N="/dev/null";pushd .>$N;cd `dirname ${CURDIR}`>$N;CURDIR=`pwd`;popd>$N | |
SOURCE_DIR=$CURDIR/package-base | |
ARCH=`dpkg --print-architecture` | |
ZATO_ROOT_DIR=/opt/zato | |
ZATO_TARGET_DIR=$ZATO_ROOT_DIR/$ZATO_VERSION | |
echo Building `lsb_release -is` DEB zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH | |
function cleanup { | |
sudo rm -rf $ZATO_TARGET_DIR | |
sudo rm -rf $CURDIR/BUILDROOT | |
} | |
function checkout { | |
sudo mkdir -p $ZATO_TARGET_DIR | |
sudo chown $USER $ZATO_TARGET_DIR | |
git clone https://github.com/zatosource/zato.git $ZATO_TARGET_DIR | |
cd $ZATO_TARGET_DIR | |
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master `; do | |
git branch --track ${branch#remotes/origin/} $branch | |
done | |
git checkout $BRANCH_NAME | |
} | |
function install_zato { | |
cd $ZATO_TARGET_DIR | |
shopt -s dotglob | |
mv code/* . | |
shopt -u dotglob | |
rm -Rf code | |
bash ./install.sh | |
find $ZATO_TARGET_DIR/. -name *.pyc -exec rm -f {} \; | |
rm -f ./code/hotfixman.sh | |
rm -rf ./code/hotfixes | |
rm -rf ./code/.git | |
cd $CURDIR | |
} | |
function build_deb { | |
mkdir $CURDIR/BUILDROOT | |
mkdir $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH | |
mkdir $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH/opt | |
mkdir $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH$ZATO_ROOT_DIR | |
cp -r $ZATO_TARGET_DIR $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH$ZATO_TARGET_DIR | |
cp -r $SOURCE_DIR/DEBIAN $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH | |
cd $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH | |
find . -path './DEBIAN' -prune -o -type f -exec md5sum {} + | sed -e 's/.\/opt/opt/g' > $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH/DEBIAN/md5sums | |
SIZE=`du -sk $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH/opt |awk '{print $1}'` | |
sed "s/Version: VER/Version: $ZATO_VERSION-$PACKAGE_VERSION/g" $SOURCE_DIR/DEBIAN/control | sed "s/Architecture: ARCH/Architecture: $ARCH/g" | sed "s/Installed-Size: SIZE/Installed-Size: $SIZE/g" > $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH/DEBIAN/control | |
if command -v lsb_release > /dev/null; then | |
release=$(lsb_release -r | cut -f2) | |
if [[ "$release" == "14.04" ]]; then | |
sed -i 's/libumfpack5.4.0/libumfpack5.6.2/' $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH/DEBIAN/control | |
fi | |
fi | |
sed -i "s/\/opt\/zato\/1.1\/bin/\/opt\/zato\/$ZATO_VERSION\/bin/" $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH/DEBIAN/postinst | |
cd $CURDIR/BUILDROOT | |
dpkg-deb --build zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH | |
mv $CURDIR/BUILDROOT/zato-$ZATO_VERSION-$PACKAGE_VERSION\_$ARCH.deb $CURDIR | |
} | |
cleanup | |
checkout | |
install_zato | |
build_deb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# I'm just waiting for someone to tell me they use apt-get on Fedora | |
# or yum on Ubuntu. But I'm really not going to chase and compare all the options | |
# and environment variables various shells and distros use. (dsuch 1 VI 2013) | |
# | |
# Please help out with it by advocating among your distribution's developers | |
# that Zato be included in your system as a package out of the box instead. Many thanks! | |
# | |
CURDIR="${BASH_SOURCE[0]}";RL="readlink";([[ `uname -s`=='Darwin' ]] || RL="$RL -f") | |
while([ -h "${CURDIR}" ]) do CURDIR=`$RL "${CURDIR}"`; done | |
N="/dev/null";pushd .>$N;cd `dirname ${CURDIR}`>$N;CURDIR=`pwd`;popd>$N | |
IS_DEB=0 | |
IS_FEDORA=0 | |
IS_DARWIN=0 | |
RUN=0 | |
# | |
# What OS are we on | |
# | |
apt-get > /dev/null 2>&1 | |
if (($? == 0)) ; then IS_DEB=1 ; fi | |
yum --help > /dev/null 2>&1 | |
if (($? == 0)) ; then IS_FEDORA=1 ; fi | |
brew --help > /dev/null 2>&1 | |
if (($? == 0)) ; then IS_DARWIN=1 ; fi | |
# | |
# Run an OS-specific installer | |
# | |
if [ $IS_DEB -eq 1 ] | |
then | |
if command -v lsb_release > /dev/null; then | |
release=$(lsb_release -r | cut -f2) | |
if [[ "$release" == "14.04" ]]; then | |
sed -i 's/libumfpack5.4.0/libumfpack5.6.2/' $CURDIR/_install-deb.sh | |
fi | |
fi | |
bash $CURDIR/_install-deb.sh | |
RUN=1 | |
fi | |
if [ $IS_FEDORA -eq 1 ] | |
then | |
bash $CURDIR/_install-fedora.sh | |
RUN=1 | |
fi | |
if [ $IS_DARWIN -eq 1 ] | |
then | |
bash $CURDIR/_install-darwin.sh | |
RUN=1 | |
fi | |
# | |
# Unknown system | |
# | |
if [ $RUN -ne 1 ] | |
then | |
echo "Could not find apt-get, yum nor brew. OS could not be determined, installer cannot run." | |
exit 1 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment