44 lines
1.5 KiB
Bash
Executable file
44 lines
1.5 KiB
Bash
Executable file
#!/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
|