Merge branch 'master' of ssh://vps.jankratochvil.net/var/lib/git/nethome
[nethome.git] / bin / qemu-img-recompress
1 #! /bin/sh
2 renice 20 -p $$
3 guestfish=true
4 if [ "$1" = "-n" ];then
5         guestfish=false
6         shift
7 fi
8 for file in "$@";do
9         if [ "$file" = "${file%.qcow2}" ];then
10                 echo >&2 "Invalid: <$file>"
11                 exit 1
12         fi
13 done
14 for file in "$@";do
15         ls -l "$file"
16         du -sh "$file"
17         set -xe
18         mv -i "$file" "$file"-src
19         rm -f "$file"-dest
20         if $guestfish;then
21                 test "$(guestfish -n -a "$file"-src run : list-devices : list-partitions|tr '\n' ' ')" = "/dev/vda /dev/vda1 "
22                 guestfish -n -a "$file"-src run : zerofree /dev/vda1
23         fi
24         time qemu-img convert -c -f qcow2 "$file"-src -O qcow2 "$file"-dest
25         mv -i "$file"-dest "$file"
26         rm -f "$file"-src
27         set +xe
28         ls -l "$file"
29         du -sh "$file"
30 done
31 echo done