vinaigrette/scripts/build_deb
2021-02-05 01:18:01 +00:00

90 lines
2.5 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
readonly THISSCRIPT=$0
readonly DISTRIB=$1
readonly BRANCH=$2
readonly FOLDER=$3
source /home/vinaigrette/config/config
source /home/vinaigrette/scripts/common.sh
export DEBSIGN_KEYID
export DEBFULLNAME
export DEBEMAIL
readonly IMG="${PBUILDER_CHROOTS}/${DISTRIB}-amd64.tgz"
# ##### #
# Usage #
# ##### #
function usage()
{
cat << EOF
Usage:
$THISSCRIPT <distrib> <branch> <folder>
Arguments:
<distrib> stretch or buster or bullseye
<branch> stable, testing, or unstable
<folder> the folder in which to build...
EOF
}
function main()
{
validate_arguments
retrieve_package_info
build_sources
add_to_reprepro
success "Build will start soon. See 'rebuildd-job list | tail'"
sendxmpppy " Added build for ${PACKAGE}/${VERSION} for ${DISTRIB}/${BRANCH} ..."
}
# ################# #
# Check user inputs #
# ################# #
function validate_arguments()
{
[[ $DISTRIB =~ ^stretch|buster|bullseye$ ]] || critical "Invalid distribution $DISTRIB"
[[ $BRANCH =~ ^testing|stable|unstable$ ]] || critical "Invalid branch $BRANCH"
[[ ! -z "$FOLDER" ]] || critical "Need a folder in which to build"
}
function retrieve_package_info()
{
readonly PKG_DIR=$(readlink -fn $FOLDER)
readonly ROOT_DIR=$(readlink -fn ${PKG_DIR}/../)
cd $PKG_DIR
readonly PACKAGE=$(dpkg-parsechangelog | awk '/^Source: / {print $2}')
readonly VERSION=$(dpkg-parsechangelog | awk '/^Version: / {print $2}')
readonly CHANGES_FILE=${ROOT_DIR}/${PACKAGE}_${VERSION}_source.changes
}
# ######################################## #
# Invoke pbuilder to build the sources ... #
# ######################################## #
function build_sources()
{
boxed "Building source package of ${PACKAGE} ${VERSION} ..."
pbuilder execute --bindmounts ${ROOT_DIR} --basetgz ${IMG} -- ${BUILD_SOURCES} $PKG_DIR \
|| { sendxmpppy "❌ Failed to build source package for $PACKAGE"; critical "An error occured while building source package"; }
[[ -f ${CHANGES_FILE} ]] || { sendxmpppy "❌ Failed to build source package for $PACKAGE"; critical "An error occured while building source package (no change file available)"; }
}
function add_to_reprepro()
{
boxed "Adding ${PACKAGE}_${VERSION} to ${DISTRIB}/${BRANCH}..."
$INCLUDE_CHANGES $DISTRIB $BRANCH $CHANGES_FILE || { sendxmpppy "❌ Failed to include changes for source package $PACKAGE"; critical "An error occured while including source package"; }
}
[[ "$1" =~ ^-h|--help$ ]] && (usage; exit 0) || main