| #!/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 |