#!/usr/share/ucs-test/runner bash
## desc: |
##  Mirror localhost repository parts
##  1. Create releases before and after an artificial version
##  2. Mirror only two releases in between
## roles-not: [basesystem]
## tags: [basic]
## packages:
##  - apache2 | apache2-mpm-prefork
##  - univention-debmirror
## exposure: dangerous

RETVAL=110 # Test fehlgeschlagen
. pool.sh || exit 137

declare -a BDIR CDIR ADIR # before current after

setup_apache "${repoprefix}"

mkpdir "${major}.${minor}-0" maintained "${ARCH}"
mkdeb "${pkgname}y" 1 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
BDIR+=("${DIR}")

mkpdir "${major}.${minor}-0" maintained all
mkdeb "${pkgname}l" 1 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
BDIR+=("${DIR}")

mkpdir "${major}.${minor}-1" maintained "${ARCH}"
mkdeb "${pkgname}y" 3 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
BDIR+=("${DIR}")

mkpdir "${major}.${minor}-1" maintained all
mkdeb "${pkgname}l" 3 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
BDIR+=("${DIR}")

minor+=1

mkpdir "${major}.${minor}-0" maintained "${ARCH}" # CURRENT < START
mkdeb "${pkgname}y" 4 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
BDIR+=("${DIR}")

mkpdir "${major}.${minor}-0" maintained all
mkdeb "${pkgname}l" 4 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
BDIR+=("${DIR}")

# START

mkpdir "${major}.${minor}-1" maintained "${ARCH}"
mkdeb "${pkgname}y" 6 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
CDIR+=("${DIR}")

mkpdir "${major}.${minor}-1" maintained all
mkdeb "${pkgname}l" 6 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
CDIR+=("${DIR}")

mkpdir "${major}.${minor}-2" maintained "${ARCH}"
mkdeb "${pkgname}y" 7 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
CDIR+=("${DIR}")

mkpdir "${major}.${minor}-2" maintained all
mkdeb "${pkgname}l" 7 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
CDIR+=("${DIR}")

# END

mkpdir "${major}.${minor}-3" maintained "${ARCH}"
mkdeb "${pkgname}y" 8 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
ADIR+=("${DIR}")

mkpdir "${major}.${minor}-3" maintained all
mkdeb "${pkgname}l" 8 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
ADIR+=("${DIR}")

minor+=1

mkpdir "${major}.${minor}-0" maintained "${ARCH}"
mkdeb "${pkgname}y" 9 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
ADIR+=("${DIR}")

mkpdir "${major}.${minor}-0" maintained all
mkdeb "${pkgname}l" 9 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
ADIR+=("${DIR}")

mkpdir "${major}.${minor}-1" maintained "${ARCH}"
mkdeb "${pkgname}y" 11 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
ADIR+=("${DIR}")

mkpdir "${major}.${minor}-1" maintained all
mkdeb "${pkgname}l" 11 all "${DIR}"
mkpkg "${DIR}"
mksh "${DIR}" preup postup
ADIR+=("${DIR}")

minor+=-1

# r/m/v/end is updated by u-r-update and read for/etc/apt/mirror.list
# r/m/v/end does NOT controll u-r-update, --updateto must be used!
# r/m/v/start on the other hand is user-controlled.
config_mirror \
	version/version="${major}.${minor}" \
	version/patchlevel=0 \
	repository/mirror/version/start="${major}.${minor}-1" \
	repository/mirror/version/end="${major}.${minor}-2"

(
	set -e
	checkapt --mirror "http://localhost\(:80\)\?/${repoprefix}/" "${MDIR[@]}"
	univention-repository-update net --updateto "${major}.${minor}-2"
	checkmirror "${CDIR[@]}" -- "${BDIR[@]}" "${ADIR[@]}"
	univention-repository-update net
	checkmirror "${CDIR[@]}" "${ADIR[@]}" -- "${BDIR[@]}"
)
[ $? -eq 0 ] && RETVAL=100 # Test bestanden (Keine Fehler)

exit ${RETVAL}
# vim:set ft=sh:
