blob: 4441d82215380ad835f3a242332aa7ee87fc76b0 [file] [log] [blame]
#!/bin/bash
CLEANUP=0
VERBOSE=0
START_API=0
RECREATE=0
FORCE_OVERWRITE=0
PUBLISHER_OPTIONS=""
log_info() {
logger -p user.info -t ${SCRIPT} "$*"
[ $VERBOSE -eq 1 ] && echo "[INFO] $*"
}
log_error() {
logger -p user.error -t ${SCRIPT} "$*"
echo "[ERROR] $*" >&2
}
at_exit() {
pgrep -f "aptly api serve" | xargs kill -15
}
trap at_exit EXIT
while getopts "a?c?f?r?v?:u:" option;do
case "${option}"
in
a|\?) START_API=1;;
c|\?) CLEANUP=1;;
f|\?) FORCE_OVERWRITE=1;;
r|\?) RECREATE=1;;
v|\?) VERBOSE=1;;
u|\?) URL=$OPTARG;;
esac
done
if [[ $START_API -eq 1 ]]; then
nohup aptly api serve --no-lock > /dev/null 2>&1 </dev/null &
fi
if [[ $RECREATE -eq 1 ]]; then
PUBLISHER_OPTIONS+=" --recreate"
fi
if [[ $FORCE_OVERWRITE -eq 1 ]]; then
PUBLISHER_OPTIONS+=" --force-overwrite"
fi
URL=${URL:-"http://127.0.0.1:8080"}
aptly-publisher --timeout=1200 publish -v -c /etc/aptly/publisher.yaml --url ${URL} --architectures amd64 $PUBLISHER_OPTIONS
if [[ $? -ne 0 ]]; then
echo "Aptly Publisher failed."
exit 1
fi
if [[ $CLEANUP -eq 1 ]]; then
SNAPSHOT_LIST="$(aptly snapshot list --raw)"
if [[ "$SNAPSHOT_LIST" != "" ]]; then
log_info "Deleting unpublished snapshots"
echo $SNAPSHOT_LIST | grep -E '*' | xargs -n 1 aptly snapshot drop
fi
log_info "Cleaning Aptly DB"
aptly db cleanup
fi
exit 0