Jeongik Cha | d8f4655 | 2024-10-04 20:23:57 +0900 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 3 | show_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 Cha | d8f4655 | 2024-10-04 20:23:57 +0900 | [diff] [blame] | 13 | |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 14 | arch="$(uname -m)" |
Jeongik Cha | 06f4ac5 | 2024-11-12 15:56:05 +0900 | [diff] [blame] | 15 | release_flag= |
Saswat Padhi | 26c4ef3 | 2024-11-29 19:46:53 +0000 | [diff] [blame] | 16 | save_workdir_flag= |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 17 | shell_condition="||" |
Saswat Padhi | 26c4ef3 | 2024-11-29 19:46:53 +0000 | [diff] [blame] | 18 | |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 19 | while getopts "a:rsw" option; do |
maciek swiech | 0fdd051 | 2024-10-11 15:12:44 +0000 | [diff] [blame] | 20 | case ${option} in |
| 21 | a) |
maciek swiech | 0fdd051 | 2024-10-11 15:12:44 +0000 | [diff] [blame] | 22 | arch="$OPTARG" |
| 23 | ;; |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 24 | h) |
| 25 | show_help ; exit |
| 26 | ;; |
Jeongik Cha | 06f4ac5 | 2024-11-12 15:56:05 +0900 | [diff] [blame] | 27 | r) |
| 28 | release_flag="-r" |
| 29 | ;; |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 30 | s) |
| 31 | shell_condition=";" |
| 32 | ;; |
Saswat Padhi | 26c4ef3 | 2024-11-29 19:46:53 +0000 | [diff] [blame] | 33 | w) |
| 34 | save_workdir_flag="-w" |
| 35 | ;; |
maciek swiech | 0fdd051 | 2024-10-11 15:12:44 +0000 | [diff] [blame] | 36 | *) |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 37 | echo "Invalid option: $OPTARG" ; exit 1 |
maciek swiech | 0fdd051 | 2024-10-11 15:12:44 +0000 | [diff] [blame] | 38 | ;; |
| 39 | esac |
| 40 | done |
| 41 | |
Saswat Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 42 | if [[ "$arch" != "aarch64" && "$arch" != "x86_64" ]]; then |
| 43 | echo "Invalid architecture: $arch" ; exit 1 |
| 44 | fi |
| 45 | |
| 46 | if [ -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 |
| 50 | fi |
| 51 | |
Saswat Padhi | 957afce | 2024-11-27 23:04:22 +0000 | [diff] [blame] | 52 | docker 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 Padhi | bf8a9cb | 2024-12-04 02:32:33 +0000 | [diff] [blame] | 56 | bash -c "/root/Virtualization/build/debian/build.sh -a $arch $release_flag $save_workdir_flag $shell_condition bash" |