1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#!/bin/bash -e
help() {
echo "$0 [-h|--help] [--no-clean] [--clean-snapd-only]"
echo "builds test snapd using snapcraft"
echo
echo "options:"
echo " --clean-snapd-only - clean only the snapd part"
echo " --no-clean - do not clean anything, same as setting"
echo " SNAPCRAFT_NO_CLEAN in the environment"
}
shopt -s nullglob
no_clean=0
clean_snapd_only=0
while true; do
if [ -z "$1" ]; then
break
fi
case "$1" in
--no-clean)
no_clean=1
shift
;;
--clean-snapd-only)
clean_snapd_only=1
shift
;;
--help|-h)
help
exit 0
;;
esac
done
if [ "$no_clean" = "1" ] && [ "$clean_snapd_only" = "1" ]; then
echo "both --no-clean and --clean-snapd-only passed, which is it then?" >&2
exit 1
fi
# check dependencies
if ! snap list snapcraft >/dev/null; then
echo "snapcraft is not installed" >&2
exit 1
fi
# Clean the snaps created in previous runs
rm -rfv built-snap
find . -name 'snapd_1337.*.snap' -delete -print
find . -name 'snapd_1337.*.snap.keep' -delete -print
touch test-build
mkdir -p built-snap
snapd_clean_arg=
if [ "$clean_snapd_only" = "1" ]; then
snapd_clean_arg="snapd"
fi
# Build snapd snap
if [ -z "$SNAPCRAFT_NO_CLEAN" ] && [ "$no_clean" != "1" ]; then
snapcraft --verbose clean $snapd_clean_arg
fi
snapcraft --verbose
for snap_file in snapd_1337.*.snap; do
mv "${snap_file}" built-snap/"${snap_file}.keep"
done
rm -fv test-build
|