phase1: add logic to purge trees after maximum lifetime
[buildbot.git] / phase1 / expire.sh
1 #!/bin/bash
2
3 max_lifetime="$1"
4
5 tree_birth="$(date --reference=tree.timestamp +%s 2>/dev/null)"
6 tree_age="$(( $(date +%s) - ${tree_birth:-0} ))"
7
8 if [ $max_lifetime -le 0 ]; then
9 echo "No tree expiry set."
10
11 elif [ $tree_age -ge $max_lifetime ]; then
12 echo "The build tree reached its maximum lifetime, cleaning up."
13 find . -mindepth 1 -maxdepth 1 -print0 | xargs -r -0 rm -vrf | while read entry do
14 printf "."
15 done
16
17 echo ""
18 echo "Writing new timestamp"
19 date +%s > tree.timestamp
20
21 else
22 echo "The build tree is not expired."
23 fi
24
25 exit 0