Commit e8419795 authored by goro's avatar goro
Browse files

Snapshot collection cleanup script and test input generator

parent 6d7c9cb8
#!/usr/bin/env bash
## Open script-dir-homed subshell
(
ABS_SCRIPT_DIR=`pwd`/`dirname "$0"`
cd "${ABS_SCRIPT_DIR}"
## Internal config
KEEP_COUNT=7
## External config
DRY=0
case "$1" in
-n)
DRY=1
;;
--just-print)
DRY=1
;;
--dry-run)
DRY=1
;;
esac
if [[ "$DRY" -eq 1 ]]; then
echo 'NOTE: Running in simulation mode'
echo
fi
function cleanup_snapshots {
## Harvest days
LIST_OF_DAYS=
for i in ????-??-?? ; do
LIST_OF_DAYS="$LIST_OF_DAYS $i";
done
SORTED_DAYS=`echo ${LIST_OF_DAYS} | sed -r 's/ /\n/g' | sort | uniq`
DAY_COUNT=`echo $SORTED_DAYS | wc -w`
if [[ $DAY_COUNT < 1 ]]; then
echo "No files deleted"
exit 0
fi
## Select days to delete
DELETE_COUNT=$((DAY_COUNT - KEEP_COUNT))
if [[ "${DELETE_COUNT}" -lt 1 ]]; then
echo "No files deleted"
return
fi
if [[ "${DELETE_COUNT}" -gt "${DAY_COUNT}" ]]; then
DELETE_COUNT="${DAY_COUNT}"
fi
DELETE_DAYS=`echo ${SORTED_DAYS} | sed -r 's/ /\n/g' | head -n $DELETE_COUNT`
echo "Deleting ${DELETE_COUNT} of ${DAY_COUNT} days"
## Delete days
COUNTER=1
for PRETTY_DAY in ${DELETE_DAYS} ; do
echo "Day ${PRETTY_DAY} [${COUNTER}/${DELETE_COUNT}]"
for j in ${PRETTY_DAY}/qtcreator-*-????????????-* ; do
if [[ ! -f ${j} ]]; then
continue
fi
echo " ${j}"
if [[ "$DRY" -eq 0 ]]; then
## Note: prefix for extra safety
rm "../snapshots/${j}"
fi
done
if [[ "$DRY" -eq 0 ]]; then
## Note: prefix for extra safety
rmdir "../snapshots/${PRETTY_DAY}"
fi
COUNTER=$((COUNTER + 1))
done
}
cleanup_snapshots
exit 0
## Properly close subshell
)
exit $?
#!/usr/bin/env bash
## Open script-dir-homed subshell
(
ABS_SCRIPT_DIR=`pwd`/`dirname "$0"`
cd "${ABS_SCRIPT_DIR}"
print_run() {
echo "$@"
"$@"
}
rand_range() {
incMin=$1
incMax=$2
echo $((RANDOM*(incMax-incMin+1)/32768+incMin))
}
rand_range_list() {
for ((i=0;i<$3;++i)); do
rand_range $1 $2
done
}
identifiers="\
linux-x86-setup.bin \
linux-x86_64-setup.bin \
linux-x86-gcc3.3-setup.bin \
mac-setup.dmg \
windows-setup.exe \
"
hour=23
minutes=59
for version in 0.9 ; do
for year in $(rand_range 2007 2008) ; do
for month in $(rand_range_list 1 12 3) ; do
for day in $(rand_range_list 1 28 10) ; do
dir=`printf '%04d-%02d-%02d' ${year} ${month} ${day}`
print_run mkdir -p ${dir}
timestamp=`printf '%04d%02d%02d%02d%02d' ${year} ${month} ${day} ${hour} ${minutes}`
shared="qtcreator-${version}-${timestamp}"
for i in ${identifiers} ; do
print_run touch "${dir}/${shared}-${i}"
done
done
done
done
done
exit 0
## Properly close subshell
)
exit $?
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment