Skip to content

Instantly share code, notes, and snippets.

@waja
Last active August 29, 2015 13:56
Show Gist options
  • Save waja/9142217 to your computer and use it in GitHub Desktop.
Save waja/9142217 to your computer and use it in GitHub Desktop.
This script could be used to prepare a tarball from monitoring-plugins upstream git
#!/bin/bash
#TMPDIR=/tmp/
# creating temp dir
TMPDIR=`mktemp -d`
trap "rm -rf $TMPDIR" EXIT
# defining some values
DIR=$(pwd)
# git clone git://git.debian.org/git/pkg-nagios/pkg-nagios-plugins.git /tmp/monitoring-plugins.git
case "$1" in
--release-tarball)
URL=${2}
UTARBALL=$(basename ${URL})
PROJECT=$(basename ${UTARBALL} .tar.gz)
REPACKURL="https://raw.github.com/waja/pkg-nagios-plugins/master/debian/bin/repack.sh"
# grab tarball
wget ${URL} -O ${TMPDIR}/${UTARBALL}
# create a dir where we extract
mkdir -p ${TMPDIR}/${PROJECT}
# extract the tarball
tar -xzf ${TMPDIR}/${UTARBALL} -C ${TMPDIR}/${PROJECT}
EXTRACTDIR=$(ls -d ${TMPDIR}/${PROJECT}/*)
# move all one directory level higher
mv ${EXTRACTDIR}/* ${EXTRACTDIR}/.. && rm ${EXTRACTDIR}/.git* && rmdir ${EXTRACTDIR}
# install needed packages
if [ ! $(apt-cache showsrc nagios-plugins | grep "^Package: nagios-plugins" | wc -l) -gt "0" ]; then sudo echo "deb-src ftp://ftp.de.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/unstable.list && sudo apt-get update; fi
sudo apt-get build-dep -y -qq --no-install-recommends nagios-plugins
sudo apt-get install -y -qq --no-install-recommends autoconf automake
# create release tarball
cd ${TMPDIR}/${PROJECT}
tools/setup && ./configure && make dist
RELEASETAR=$(ls ${TMPDIR}/${PROJECT}/*.tar.gz)
# download debian repack script
REPACK=$(basename ${REPACKURL})
wget ${REPACKURL} -O ${TMPDIR}/${REPACK}
# repack everything
chmod +x ${TMPDIR}/${REPACK}
${TMPDIR}/${REPACK} ${RELEASETAR}
# copy everything in here
cp $(ls ${TMPDIR}/${PROJECT}/*.tar.gz) ${DIR}
;;
--prepare-debian)
UTARBALL=${2}
PROJECT=$(basename $(tar tfz "${UTARBALL}" | head -1))
if [ -d "${PROJECT}" ] ; then
echo -n remove "${PROJECT}"? ${RTURN}
read RTURN
if [ "$RTURN" == "Y" ] || [ "$RTURN" == "y" ] ; then
rm -rf "${PROJECT}"
fi
fi
#DEBIANGITURL="git@github.com:waja/pkg-nagios-plugins.git"
DEBIANGITURL="https://github.com/waja/pkg-nagios-plugins.git -b m-p"
# extract the tarball
tar -xzf "${UTARBALL}"
# fetch latest debian packaging
git clone ${DEBIANGITURL} "${TMPDIR}"
# copy over the whole debian packaging
cp -a "${TMPDIR}"/debian "${PROJECT}"
# create a symlink to match debian conventions
# FIXME - the last part of this needs to be approved
ORIGTAR=$(echo "${UTARBALL}"|sed 's/\.tar\.gz/.orig.tar.gz/'|sed 's/plugins-/plugins_/')
UTARBALL=$(basename ${UTARBALL})
[ -L "${ORIGTAR}" ] || ln -s "${UTARBALL}" "${ORIGTAR}"
if [ ! "$(echo ${DEBIAN_FRONTEND} | grep noninteractive | wc -l)" -gt "0" ]; then
# fetch build-deps
sudo apt-get build-dep nagios-plugins
# add changelog entry and start to build the package
cd "${PROJECT}" && dch -R && debuild -sa
fi
;;
*)
echo "Usage: ${0} [--release-tarball|--prepare-debian]" >&2
exit 3
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment