From: Michael Tremer Date: Sat, 3 Oct 2015 20:15:53 +0000 (+0200) Subject: Import server scripts X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d9d52bbae31d64ea43489fd49d83080b506aeeca;p=people%2Fms%2Fnightly-builds.git Import server scripts Signed-off-by: Michael Tremer --- diff --git a/server-scripts/ipfire-cleanup-nightly-builds.sh b/server-scripts/ipfire-cleanup-nightly-builds.sh new file mode 100755 index 0000000..bb6f89e --- /dev/null +++ b/server-scripts/ipfire-cleanup-nightly-builds.sh @@ -0,0 +1,30 @@ +#!/bin/bash -l + +BASEDIR="/pub/nightly" + +MAX_AGE=$(( 7 * 24 * 3600 )) # 7 days + +NOW="$(date +"%s")" + +counter=0 +for build in $(find "${BASEDIR}" -mindepth 2 -maxdepth 2 -type d | sort -nr); do + time="$(basename "${build}")" + [ "${time}" = "latest" ] && continue + + # Never delete the last build + if [ "${counter}" -lt 1 ]; then + counter=$(( ${counter} + 1 )) + continue + fi + + # Determine age of the build + change="$(stat --format="%Y" "${build}")" + age=$(( ${NOW} - ${change} )) + + # If the build is old enough we will delete it + if [[ ${age} -ge ${MAX_AGE} ]]; then + rm -rf "${build}" + fi +done + +exit 0 diff --git a/server-scripts/ipfire-nightly-latest.sh b/server-scripts/ipfire-nightly-latest.sh new file mode 100755 index 0000000..756ba8b --- /dev/null +++ b/server-scripts/ipfire-nightly-latest.sh @@ -0,0 +1,37 @@ +#!/bin/bash -l + +BASEDIR="/pub/nightly" + +main() { + local branch + for branch in ${BASEDIR}/*; do + [ -d "${branch}" ] || continue + + local -A successful_releases + + local arch + local release + for release in ${branch}/*/*; do + arch="$(basename "${release}")" + + local time="$(basename "$(dirname "${release}")")" + [ "${time}" = "latest" ] && continue + + if [ -e "${release}/.success" ]; then + successful_releases["${arch}"]="${release}" + fi + done 2>/dev/null + + for arch in ${!successful_releases[@]}; do + release="${successful_releases[${arch}]}" + + mkdir -p "${branch}/latest" + rm -f "${branch}/latest/${arch}" + ln -sf --relative "${release}" "${branch}/latest/${arch}" + done + done + + return 0 +} + +main || exit $?