#!/bin/bash -e
#
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Simple utility script for cleaning up old builds on the Dev Server. Should be
# run from the root of the archive directory.
declare -r NUM_BUILDS_KEPT=10
declare -r NUM_IMAGES_KEPT=3
declare -r IMAGE_NAME="chromiumos_test_image.bin"
declare -r BUILD_PATTERN="[0-9]*.[0-9]*.[0-9]*.[0-9]*"
declare -r NEW_BUILD_PATTERN="R[0-9]*-[0-9]*.[0-9]*.[0-9]*"
declare -r DEV_BUILD_PATTERN="[a-zA-Z]*-${BUILD_PATTERN}"
function cleanup_dir() {
# First argument is the parent directory to look for builds under.
local dirs=($(ls -d -t $1 2>/dev/null))
# Second argument is the directory/build pattern to match against.
local latest=$2
latest=${latest:=2}
for ((i=${latest}; i<${#dirs[@]}; i++)); do
# delete those old ones.
echo delete ${dirs[i]}
rm -rf ${dirs[i]} || echo "Failed to remove ${dirs[i]}"
done
}
for d in *; do
if [ -d $d ]; then
echo truncate ${d}
# Cleanup stale image dirs.
cleanup_dir "${d}/${BUILD_PATTERN}" ${NUM_BUILDS_KEPT}
cleanup_dir "${d}/${DEV_BUILD_PATTERN}" ${NUM_BUILDS_KEPT}
cleanup_dir "${d}/${NEW_BUILD_PATTERN}" ${NUM_BUILDS_KEPT}
# Cleanup stale image files. Dev builds don't keep images.
cleanup_dir "${d}/${BUILD_PATTERN}/${IMAGE_NAME}" ${NUM_IMAGES_KEPT}
cleanup_dir "${d}/${NEW_BUILD_PATTERN}/${IMAGE_NAME}" ${NUM_IMAGES_KEPT}
fi
done