# This is the config file for the catalyst-auto script. It should be pretty
# self-explanatory.

UPLOAD_USER=arm
UPLOAD_KEY=/root/.ssh/id_ed25519

host=$(hostname)

SPECS_DIR=${REPO_DIR}/releases/specs/arm

EMAIL_SUBJECT_PREPEND="[arm-auto]"

SETS="
	armv4tl_openrc_23
	armv4tl_systemd_23
	armv5tel_openrc_23
	armv5tel_systemd_23
	armv6j_hf_openrc_23
	armv6j_hf_systemd_23
	armv6j_sf_openrc_23
	armv6j_sf_systemd_23
	armv6j_hf_musl_openrc_23
	armv6j_hf_musl_hardened_openrc_23
	armv7a_hf_openrc_23
	armv7a_hf_systemd_23
	armv7a_sf_openrc_23
	armv7a_sf_systemd_23
	armv7a_hf_musl_openrc_23
	armv7a_hf_musl_hardened_openrc_23
	armv4tl_openrc
	armv5tel_openrc
	armv6j_hf_openrc
	armv6j_sf_openrc
	armv6j_hf_musl_openrc
	armv6j_hf_musl_hardened_openrc
	armv7a_hf_openrc
	armv7a_sf_openrc
	armv7a_hf_musl_openrc
	armv7a_hf_musl_hardened_openrc
"

SET_armv4tl_openrc_SPECS="armv4tl/stage1-openrc.spec armv4tl/stage3-openrc.spec"

SET_armv5tel_openrc_SPECS="armv5tel/stage1-openrc.spec armv5tel/stage3-openrc.spec"

SET_armv6j_hf_openrc_SPECS="armv6j/stage1-hardfloat-openrc.spec armv6j/stage3-hardfloat-openrc.spec"

SET_armv6j_sf_openrc_SPECS="armv6j/stage1-openrc.spec armv6j/stage3-openrc.spec"

SET_armv6j_hf_musl_openrc_SPECS="armv6j-musl/stage1-hardfloat.spec armv6j-musl/stage3-hardfloat.spec"
SET_armv6j_hf_musl_hardened_openrc_SPECS="armv6j-musl-hardened/stage1-hardfloat.spec armv6j-musl-hardened/stage3-hardfloat.spec"

SET_armv7a_hf_openrc_SPECS="armv7a/stage1-hardfloat-openrc.spec armv7a/stage3-hardfloat-openrc.spec"

SET_armv7a_hf_musl_openrc_SPECS="armv7a-musl/stage1-hardfloat.spec armv7a-musl/stage3-hardfloat.spec"
SET_armv7a_hf_musl_hardened_openrc_SPECS="armv7a-musl-hardened/stage1-hardfloat.spec armv7a-musl-hardened/stage3-hardfloat.spec"

SET_armv7a_sf_openrc_SPECS="armv7a/stage1-openrc.spec armv7a/stage3-openrc.spec"

SET_armv4tl_openrc_23_SPECS="armv4tl/stage1-openrc-23.spec armv4tl/stage3-openrc-23.spec"
SET_armv4tl_systemd_23_SPECS="armv4tl/stage1-systemd-23.spec armv4tl/stage3-systemd-23.spec"

SET_armv5tel_openrc_23_SPECS="armv5tel/stage1-openrc-23.spec armv5tel/stage3-openrc-23.spec"
SET_armv5tel_systemd_23_SPECS="armv5tel/stage1-systemd-23.spec armv5tel/stage3-systemd-23.spec"

SET_armv6j_hf_openrc_23_SPECS="armv6j/stage1-hardfloat-openrc-23.spec armv6j/stage3-hardfloat-openrc-23.spec"
SET_armv6j_hf_systemd_23_SPECS="armv6j/stage1-hardfloat-systemd-23.spec armv6j/stage3-hardfloat-systemd-23.spec"

SET_armv6j_sf_openrc_23_SPECS="armv6j/stage1-openrc-23.spec armv6j/stage3-openrc-23.spec"
SET_armv6j_sf_systemd_23_SPECS="armv6j/stage1-systemd-23.spec armv6j/stage3-systemd-23.spec"

SET_armv6j_hf_musl_openrc_23_SPECS="armv6j-musl/stage1-hardfloat-23.spec armv6j-musl/stage3-hardfloat-23.spec"
SET_armv6j_hf_musl_hardened_openrc_23_SPECS="armv6j-musl-hardened/stage1-hardfloat-23.spec armv6j-musl-hardened/stage3-hardfloat-23.spec"

SET_armv7a_hf_openrc_23_SPECS="armv7a/stage1-hardfloat-openrc-23.spec armv7a/stage3-hardfloat-openrc-23.spec"
SET_armv7a_hf_systemd_23_SPECS="armv7a/stage1-hardfloat-systemd-23.spec armv7a/stage3-hardfloat-systemd-23.spec"

SET_armv7a_sf_openrc_23_SPECS="armv7a/stage1-openrc-23.spec armv7a/stage3-openrc-23.spec"
SET_armv7a_sf_systemd_23_SPECS="armv7a/stage1-systemd-23.spec armv7a/stage3-systemd-23.spec"

SET_armv7a_hf_musl_openrc_23_SPECS="armv7a-musl/stage1-hardfloat-23.spec armv7a-musl/stage3-hardfloat-23.spec"
SET_armv7a_hf_musl_hardened_openrc_23_SPECS="armv7a-musl-hardened/stage1-hardfloat-23.spec armv7a-musl-hardened/stage3-hardfloat-23.spec"


update_symlinks() {
	# Symlink the latest stages3 to build from
	local d f
	for d in "${BUILD_SRCDIR_BASE}/builds"/* ; do
		mkdir -p "${d}"
		pushd "${d}" >/dev/null
		for f in $(ls stage3*xz | grep -v latest | give_latest_from_dates) ; do
			local of=$(echo "${f}" | convert_filename)
			ln -sf "${f}" "${of}"
		done
		popd >/dev/null
	done
}

post_build() {
	local set=$1 spec=$2

	pushd "${BUILD_SRCDIR_BASE}/builds/default" >/dev/null

	case ${spec} in
	armv4tl/stage3-openrc.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/default/stage3-armv4tl" arm/17.0/armv4tl
		;;
	armv5tel/stage3-openrc.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/default/stage3-armv5tel" arm/17.0/armv5tel
		;;
	armv6j/stage3-openrc.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/default/stage3-armv6j" arm/17.0/armv6j
		;;
	armv6j/stage3-hardfloat-openrc.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/default/stage3-armv6j_hardfp" arm/17.0/armv6j_hardfp
		;;
	armv7a/stage3-openrc.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/default/stage3-armv7a" arm/17.0/armv7a
		;;
	armv7a/stage3-hardfloat-openrc.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/default/stage3-armv7a_hardfp" arm/17.0/armv7a_hardfp
		;;
	esac

	popd >/dev/null

	pushd "${BUILD_SRCDIR_BASE}/builds/23.0-default" >/dev/null

	case ${spec} in
	armv4tl/stage3-openrc-23.spec)
		upload stage3-armv4tl-openrc-${TIMESTAMP}*.xz*
		;;
	armv4tl/stage3-systemd-23.spec)
		upload stage3-armv4tl-systemd-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-default/stage3-armv4tl" arm/23.0/armv4tl
		;;
	armv5tel/stage3-openrc-23.spec)
		upload stage3-armv5tel-openrc-${TIMESTAMP}*.xz*
		;;
	armv5tel/stage3-systemd-23.spec)
		upload stage3-armv5tel-systemd-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-default/stage3-armv5tel" arm/23.0/armv5tel
		;;
	armv6j/stage3-openrc-23.spec)
		upload stage3-armv6j-openrc-${TIMESTAMP}*.xz*
		;;
	armv6j/stage3-systemd-23.spec)
		upload stage3-armv6j-systemd-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-default/stage3-armv6j" arm/23.0/armv6j_sf
		;;
	armv6j/stage3-hardfloat-openrc-23.spec)
		upload stage3-armv6j_hardfp-openrc-${TIMESTAMP}*.xz*
		;;
	armv6j/stage3-hardfloat-systemd-23.spec)
		upload stage3-armv6j_hardfp-systemd-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-default/stage3-armv6j_hardfp" arm/23.0/armv6j_hf
		;;
	armv7a/stage3-openrc-23.spec)
		upload stage3-armv7a-openrc-${TIMESTAMP}*.xz*
		;;
	armv7a/stage3-systemd-23.spec)
		upload stage3-armv7a-systemd-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-default/stage3-armv7a" arm/23.0/armv7a_sf
		;;
	armv7a/stage3-hardfloat-openrc-23.spec)
		upload stage3-armv7a_hardfp-openrc-${TIMESTAMP}*.xz*
		;;
	armv7a/stage3-hardfloat-systemd-23.spec)
		upload stage3-armv7a_hardfp-systemd-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-default/stage3-armv7a_hardfp" arm/23.0/armv7a_hf
		;;
	esac

	popd >/dev/null

	pushd "${BUILD_SRCDIR_BASE}/builds/musl" >/dev/null

	case ${spec} in
	armv7a-musl/stage3-hardfloat.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/musl/stage3-armv7a_hardfp_musl" arm/17.0/armv7a_hardfp_musl
		;;
	armv6j-musl/stage3-hardfloat.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/musl/stage3-armv6j_hardfp_musl" arm/17.0/armv6j_hardfp_musl
		;;
	esac

	popd >/dev/null

	pushd "${BUILD_SRCDIR_BASE}/builds/23.0-musl" >/dev/null

	case ${spec} in
	armv7a-musl/stage3-hardfloat-23.spec)
		upload stage3-armv7a_hardfp_musl-openrc-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-musl/stage3-armv7a_hardfp_musl" arm/23.0/armv7a_hardfp_musl
		;;
	armv6j-musl/stage3-hardfloat-23.spec)
		upload stage3-armv6j_hardfp_musl-openrc-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-musl/stage3-armv6j_hardfp_musl" arm/23.0/armv6j_hardfp_musl
		;;
	esac

	popd >/dev/null

	pushd "${BUILD_SRCDIR_BASE}/builds/musl-hardened" >/dev/null

	case ${spec} in
	armv7a-musl-hardened/stage3-hardfloat.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/musl-hardened/stage3-armv7a_hardfp_musl" arm/17.0/armv7a_hardfp_musl_hardened
		;;
	armv6j-musl-hardened/stage3-hardfloat.spec)
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/musl-hardened/stage3-armv6j_hardfp_musl" arm/17.0/armv6j_hardfp_musl_hardened
		;;
	esac

	popd >/dev/null

	pushd "${BUILD_SRCDIR_BASE}/builds/23.0-musl-hardened" >/dev/null

	case ${spec} in
	armv7a-musl-hardened/stage3-hardfloat-23.spec)
		upload stage3-armv7a_hardfp_musl-hardened-openrc-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-musl-hardened/stage3-armv7a_hardfp_musl" arm/23.0/armv7a_hardfp_musl_hardened
		;;
	armv6j-musl-hardened/stage3-hardfloat-23.spec)
		upload stage3-armv6j_hardfp_musl-hardened-openrc-${TIMESTAMP}*.xz*
		upsync_binpackages "${BUILD_SRCDIR_BASE}/packages/23.0-musl-hardened/stage3-armv6j_hardfp_musl" arm/23.0/armv6j_hardfp_musl_hardened
		;;
	esac

	popd >/dev/null

}
