mirror of
https://github.com/YunoHost/vinaigrette.git
synced 2024-09-03 20:06:11 +02:00
90 lines
2.5 KiB
Bash
Executable file
90 lines
2.5 KiB
Bash
Executable file
#!/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
|