blob: 40a6d8acc86394d0a2be4ecd69bbba89e2c3fb98 [file] [log] [blame]
#!/bin/bash
set -e
DIR=~/signing-work
TARGET_FREE_SPACE=40000000
function get_df(){
df -k $1 |tail -n 1 | awk '{print $4}'
}
while getopts ":d:s:" opt; do
case $opt in
d)
DIR=$OPTARG
;;
s)
TARGET_FREE_SPACE=$OPTARG
;;
*)
echo "Invalid option: -$OPTARG" >&2
echo "Usage: $0 -d directory_to_clean -s space_needed_in_KB" >&2
exit 1
;;
esac
done
echo "Directories available:"
echo "========================================================================"
ls -rt $DIR
echo "========================================================================"
for dir in $(ls -rt $DIR | grep -v removed_binaries); do
curr_df=$(get_df $DIR)
if [ $curr_df -lt $TARGET_FREE_SPACE ]; then
echo "Do you really want to remove binaries from $dir? [y/n]" >&2
read yesno
if [ "$yesno" = "y" ] || [ "$yesno" = "Y" ]; then
echo "Removing binaries from $dir..." >&2
for d in $(ls -d $DIR/$dir/*signed-build* $DIR/$dir/signed $DIR/$dir/*.tar 2>/dev/null); do
rm -rf $d
done
echo "Moving $DIR/$dir to $DIR/removed_binaries..." >&2
mkdir -p $DIR/removed_binaries
mv $DIR/$dir $DIR/removed_binaries
else
echo "Skipping $dir..." >&2
fi
else
echo "Free space required : $TARGET_FREE_SPACE KB"
echo "Free space available: $curr_df KB"
exit 0
fi
done
curr_df=$(get_df $DIR)
if [ $curr_df -lt $TARGET_FREE_SPACE ]; then
echo "Free space required : $TARGET_FREE_SPACE KB"
echo "Free space available: $curr_df KB"
echo "Remove unneeded files manually"
exit 1
fi