hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
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
#!/usr/bin/env bash
 
die() {
  cat <<EOF >&2
Error: $@
 
Usage: ${0} -c GENIMAGE_CONFIG_FILE
EOF
  exit 1
}
 
# Parse arguments and put into argument list of the script
opts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $?
eval set -- "$opts"
 
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
while true ; do
   case "$1" in
   -c)
     GENIMAGE_CFG="${2}";
     shift 2 ;;
   --) # Discard all non-option parameters
     shift 1;
     break ;;
   *)
     die "unknown option '${1}'" ;;
   esac
done
 
[ -n "${GENIMAGE_CFG}" ] || die "Missing argument"
 
# Pass an empty rootpath. genimage makes a full copy of the given rootpath to
# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
# space. We don't rely on genimage to build the rootfs image, just to insert a
# pre-built one in the disk image.
 
trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
ROOTPATH_TMP="$(mktemp -d)"
 
rm -rf "${GENIMAGE_TMP}"
 
genimage \
   --rootpath "${ROOTPATH_TMP}"     \
   --tmppath "${GENIMAGE_TMP}"    \
   --inputpath "${BINARIES_DIR}"  \
   --outputpath "${BINARIES_DIR}" \
   --config "${GENIMAGE_CFG}"