blob: 5028b74c2c626602ad5126cb15d18f92ede13cc6 [file] [log] [blame]
Jeongik Chad8f46552024-10-04 20:23:57 +09001#!/bin/bash
2
Saswat Padhibf8a9cb2024-12-04 02:32:33 +00003show_help() {
4 echo "Usage: sudo $0 [OPTION]..."
5 echo "Builds a debian image and save it to image.raw."
6 echo "Options:"
7 echo "-h Print usage and this help message and exit."
8 echo "-a ARCH Architecture of the image [default is host arch: $(uname -m)]"
9 echo "-r Release mode build"
10 echo "-s Leave a shell open [default: only if the build fails]"
11 echo "-w Save temp work directory in the container [for debugging]"
12}
Jeongik Chad8f46552024-10-04 20:23:57 +090013
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000014arch="$(uname -m)"
Jeongik Cha06f4ac52024-11-12 15:56:05 +090015release_flag=
Saswat Padhi26c4ef32024-11-29 19:46:53 +000016save_workdir_flag=
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000017shell_condition="||"
Saswat Padhi26c4ef32024-11-29 19:46:53 +000018
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000019while getopts "a:rsw" option; do
maciek swiech0fdd0512024-10-11 15:12:44 +000020 case ${option} in
21 a)
maciek swiech0fdd0512024-10-11 15:12:44 +000022 arch="$OPTARG"
23 ;;
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000024 h)
25 show_help ; exit
26 ;;
Jeongik Cha06f4ac52024-11-12 15:56:05 +090027 r)
28 release_flag="-r"
29 ;;
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000030 s)
31 shell_condition=";"
32 ;;
Saswat Padhi26c4ef32024-11-29 19:46:53 +000033 w)
34 save_workdir_flag="-w"
35 ;;
maciek swiech0fdd0512024-10-11 15:12:44 +000036 *)
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000037 echo "Invalid option: $OPTARG" ; exit 1
maciek swiech0fdd0512024-10-11 15:12:44 +000038 ;;
39 esac
40done
41
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000042if [[ "$arch" != "aarch64" && "$arch" != "x86_64" ]]; then
43 echo "Invalid architecture: $arch" ; exit 1
44fi
45
46if [ -z "$ANDROID_BUILD_TOP" ] ; then
47 echo '`ANDROID_BUILD_TOP` is undefined.'
48 echo 'Please `lunch` an Android target, or manually set the variable.'
49 exit 1
50fi
51
Saswat Padhi957afce2024-11-27 23:04:22 +000052docker run --privileged -it -v /dev:/dev \
53 -v "$ANDROID_BUILD_TOP/packages/modules/Virtualization:/root/Virtualization" \
54 --workdir /root/Virtualization/build/debian \
55 ubuntu:22.04 \
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000056 bash -c "/root/Virtualization/build/debian/build.sh -a $arch $release_flag $save_workdir_flag $shell_condition bash"