From d9d52bbae31d64ea43489fd49d83080b506aeeca Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 3 Oct 2015 22:15:53 +0200 Subject: [PATCH] Import server scripts Signed-off-by: Michael Tremer --- .../ipfire-cleanup-nightly-builds.sh | 30 +++++++++++++++ server-scripts/ipfire-nightly-latest.sh | 37 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 server-scripts/ipfire-cleanup-nightly-builds.sh create mode 100755 server-scripts/ipfire-nightly-latest.sh 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 $? -- 2.47.3