You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
44 lines
1.5 KiB
#!/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
|
|
|