From 60c9013535b78a7d02865f5b7f341a42431373ef Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 30 Nov 2018 16:22:04 +0100 Subject: [PATCH] Travis (#269) * Update build-all.sh * Delete ovf-create.sh * Update patches.sh * Update hdd-image.sh * Create .travis.yml * Update hdd-image.sh * Update hdd-image.sh * Update hdd-image.sh * Update hdd-image.sh * Update ota.sh * Update post-build.sh * Update post-image.sh * Update rauc.sh * Update rootfs-layer.sh * Update hassos-cli * Update hassos-supervisor * Update hassos-config * Update hassos-apparmor * Update hassos-expand * Update hassos-persists-journald * Update hassos-rate * Update hassos-hook.sh * Update hassos-hook.sh * Rename uboot-boot.sh to uboot-boot.ush * Rename uboot-boot.sh to uboot-boot.ush * Update hassos-hook.sh * Rename uboot-boot.sh to uboot-boot.ush * Rename uboot-boot.sh to uboot-boot.ush * Update hassos-hook.sh * Update odroid_c2_defconfig * Update rpi0_w_defconfig * Update rpi2_defconfig * Update rpi3_64_defconfig * Update rpi3_defconfig * Update rpi_defconfig * Update tinker_defconfig * Update enter.sh * Update .travis.yml --- .travis.yml | 25 +++ buildroot-external/board/asus/hassos-hook.sh | 18 +- .../tinker/{uboot-boot.sh => uboot-boot.ush} | 0 .../board/hardkernel/odroid-c2/hassos-hook.sh | 15 +- .../{uboot-boot.sh => uboot-boot.ush} | 0 buildroot-external/board/ova/hassos-hook.sh | 11 +- .../board/raspberrypi/hassos-hook.sh | 25 +-- .../rpi3-64/{uboot-boot.sh => uboot-boot.ush} | 0 .../{uboot-boot.sh => uboot-boot.ush} | 0 .../configs/odroid_c2_defconfig | 2 +- buildroot-external/configs/rpi0_w_defconfig | 2 +- buildroot-external/configs/rpi2_defconfig | 2 +- buildroot-external/configs/rpi3_64_defconfig | 2 +- buildroot-external/configs/rpi3_defconfig | 2 +- buildroot-external/configs/rpi_defconfig | 2 +- buildroot-external/configs/tinker_defconfig | 2 +- .../usr/libexec/hassos-apparmor | 20 +- .../rootfs-overlay/usr/libexec/hassos-expand | 27 +-- .../usr/libexec/hassos-persists-journald | 8 +- .../rootfs-overlay/usr/libexec/hassos-rate | 1 + .../rootfs-overlay/usr/sbin/hassos-cli | 3 +- .../rootfs-overlay/usr/sbin/hassos-config | 3 +- .../rootfs-overlay/usr/sbin/hassos-supervisor | 8 +- buildroot-external/scripts/hdd-image.sh | 174 +++++++++--------- buildroot-external/scripts/ota.sh | 21 ++- buildroot-external/scripts/post-build.sh | 16 +- buildroot-external/scripts/post-image.sh | 17 +- buildroot-external/scripts/rauc.sh | 23 ++- buildroot-external/scripts/rootfs-layer.sh | 28 +-- scripts/build-all.sh | 2 +- scripts/enter.sh | 2 +- scripts/ovf-create.sh | 9 - scripts/patches.sh | 2 +- 33 files changed, 249 insertions(+), 223 deletions(-) create mode 100644 .travis.yml rename buildroot-external/board/asus/tinker/{uboot-boot.sh => uboot-boot.ush} (100%) rename buildroot-external/board/hardkernel/odroid-c2/{uboot-boot.sh => uboot-boot.ush} (100%) rename buildroot-external/board/raspberrypi/rpi3-64/{uboot-boot.sh => uboot-boot.ush} (100%) rename buildroot-external/board/raspberrypi/{uboot-boot.sh => uboot-boot.ush} (100%) delete mode 100755 scripts/ovf-create.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..920bf0e97 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,25 @@ +language: bash + +sudo: required +service: docker + +addons: + apt: + packages: + - docker-ce + +before_install: + - shopt -s globstar + - docker pull koalaman/shellcheck + +script: + - docker run -v $(pwd):/mnt koalaman/shellcheck scripts/*.sh + - docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/scripts/*.sh + - docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/scripts/*.sh + - docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/board/**/*.sh + - docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/rootfs-overlay/usr/sbin/* + - docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/rootfs-overlay/usr/libexec/* + - docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/rootfs-overlay/usr/lib/rauc/* + +matrix: + fast_finish: true diff --git a/buildroot-external/board/asus/hassos-hook.sh b/buildroot-external/board/asus/hassos-hook.sh index 491e0ebfc..2d5b835a8 100755 --- a/buildroot-external/board/asus/hassos-hook.sh +++ b/buildroot-external/board/asus/hassos-hook.sh @@ -1,28 +1,28 @@ #!/bin/bash +# shellcheck disable=SC2155 function hassos_pre_image() { local BOOT_DATA="$(path_boot_dir)" local SPL_IMG="$(path_spl_img)" - cp -t ${BOOT_DATA} \ - ${BINARIES_DIR}/boot.scr \ - ${BINARIES_DIR}/rk3288-tinker.dtb + cp -t "${BOOT_DATA}" \ + "${BINARIES_DIR}/boot.scr" \ + "${BINARIES_DIR}/rk3288-tinker.dtb" - echo "console=tty1" > ${BOOT_DATA}/cmdline.txt + echo "console=tty1" > "${BOOT_DATA}/cmdline.txt" # Create boot binary - rm -f ${BINARIES_DIR}/u-boot-spl-dtb.img - mkimage -n rk3288 -T rksd -d ${BINARIES_DIR}/u-boot-spl-dtb.bin ${BINARIES_DIR}/u-boot-spl-dtb.img - cat ${BINARIES_DIR}/u-boot-dtb.bin >> ${BINARIES_DIR}/u-boot-spl-dtb.img + rm -f "${BINARIES_DIR}/u-boot-spl-dtb.img" + mkimage -n rk3288 -T rksd -d "${BINARIES_DIR}/u-boot-spl-dtb.bin" "${BINARIES_DIR}/u-boot-spl-dtb.img" + cat "${BINARIES_DIR}/u-boot-dtb.bin" >> "${BINARIES_DIR}/u-boot-spl-dtb.img" # SPL create_spl_image - dd if=${BINARIES_DIR}/u-boot-spl-dtb.img of=${SPL_IMG} conv=notrunc bs=512 seek=64 + dd if="${BINARIES_DIR}/u-boot-spl-dtb.img" of="${SPL_IMG}" conv=notrunc bs=512 seek=64 } function hassos_post_image() { convert_disk_image_gz } - diff --git a/buildroot-external/board/asus/tinker/uboot-boot.sh b/buildroot-external/board/asus/tinker/uboot-boot.ush similarity index 100% rename from buildroot-external/board/asus/tinker/uboot-boot.sh rename to buildroot-external/board/asus/tinker/uboot-boot.ush diff --git a/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh b/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh index 3d3fab208..b85bdc9e3 100755 --- a/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh +++ b/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh @@ -1,4 +1,5 @@ #!/bin/bash +# shellcheck disable=SC2155 function hassos_pre_image() { local BOOT_DATA="$(path_boot_dir)" @@ -6,18 +7,18 @@ function hassos_pre_image() { local UBOOT_GXBB="${BINARIES_DIR}/u-boot.gxbb" local spl_img="$(path_spl_img)" - cp ${BINARIES_DIR}/boot.scr ${BOOT_DATA}/boot.scr - cp ${BOARD_DIR}/boot-env.txt ${BOOT_DATA}/config.txt - cp ${BINARIES_DIR}/meson-gxbb-odroidc2.dtb ${BOOT_DATA}/meson-gxbb-odroidc2.dtb + cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr" + cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/config.txt" + cp "${BINARIES_DIR}/meson-gxbb-odroidc2.dtb" "${BOOT_DATA}/meson-gxbb-odroidc2.dtb" - echo "console=tty0 console=ttyAML0,115200n8" > ${BOOT_DATA}/cmdline.txt + echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt" # SPL create_spl_image - dd if=${BL1} of=${spl_img} conv=notrunc bs=1 count=440 - dd if=${BL1} of=${spl_img} conv=notrunc bs=512 skip=1 seek=1 - dd if=${UBOOT_GXBB} of=${spl_img} conv=notrunc bs=512 seek=97 + dd if="${BL1}" of="${spl_img}" conv=notrunc bs=1 count=440 + dd if="${BL1}" of="${spl_img}" conv=notrunc bs=512 skip=1 seek=1 + dd if="${UBOOT_GXBB}" of="${spl_img}" conv=notrunc bs=512 seek=97 } diff --git a/buildroot-external/board/hardkernel/odroid-c2/uboot-boot.sh b/buildroot-external/board/hardkernel/odroid-c2/uboot-boot.ush similarity index 100% rename from buildroot-external/board/hardkernel/odroid-c2/uboot-boot.sh rename to buildroot-external/board/hardkernel/odroid-c2/uboot-boot.ush diff --git a/buildroot-external/board/ova/hassos-hook.sh b/buildroot-external/board/ova/hassos-hook.sh index fc450fe02..71a7f890c 100755 --- a/buildroot-external/board/ova/hassos-hook.sh +++ b/buildroot-external/board/ova/hassos-hook.sh @@ -1,15 +1,16 @@ #!/bin/bash +# shellcheck disable=SC2155 function hassos_pre_image() { local BOOT_DATA="$(path_boot_dir)" - mkdir -p ${BOOT_DATA}/EFI/BOOT - mkdir -p ${BOOT_DATA}/EFI/barebox + mkdir -p "${BOOT_DATA}/EFI/BOOT" + mkdir -p "${BOOT_DATA}/EFI/barebox" - cp ${BINARIES_DIR}/barebox.bin ${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI - cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb ${BOOT_DATA}/EFI/barebox/state.dtb + cp "${BINARIES_DIR}/barebox.bin" "${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI" + cp "${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb" "${BOOT_DATA}/EFI/barebox/state.dtb" - echo "console=tty1" > ${BOOT_DATA}/cmdline.txt + echo "console=tty1" > "${BOOT_DATA}/cmdline.txt" } diff --git a/buildroot-external/board/raspberrypi/hassos-hook.sh b/buildroot-external/board/raspberrypi/hassos-hook.sh index 246bc9437..0db52a27f 100755 --- a/buildroot-external/board/raspberrypi/hassos-hook.sh +++ b/buildroot-external/board/raspberrypi/hassos-hook.sh @@ -1,25 +1,26 @@ #!/bin/bash +# shellcheck disable=SC2155 function hassos_pre_image() { local BOOT_DATA="$(path_boot_dir)" - cp -t ${BOOT_DATA} \ - ${BINARIES_DIR}/u-boot.bin \ - ${BINARIES_DIR}/boot.scr - cp -t ${BOOT_DATA} \ - ${BINARIES_DIR}/*.dtb \ - ${BINARIES_DIR}/rpi-firmware/bootcode.bin \ - ${BINARIES_DIR}/rpi-firmware/fixup.dat \ - ${BINARIES_DIR}/rpi-firmware/start.elf - cp -r ${BINARIES_DIR}/rpi-firmware/overlays ${BOOT_DATA}/ - cp -f ${BOARD_DIR}/../boot-env.txt ${BOOT_DATA}/config.txt + cp -t "${BOOT_DATA}" \ + "${BINARIES_DIR}/u-boot.bin" \ + "${BINARIES_DIR}/boot.scr" + cp -t "${BOOT_DATA}" \ + "${BINARIES_DIR}"/*.dtb \ + "${BINARIES_DIR}/rpi-firmware/bootcode.bin" \ + "${BINARIES_DIR}/rpi-firmware/fixup.dat" \ + "${BINARIES_DIR}/rpi-firmware/start.elf" + cp -r "${BINARIES_DIR}/rpi-firmware/overlays" "${BOOT_DATA}/" + cp -f "${BOARD_DIR}/../boot-env.txt" "${BOOT_DATA}/config.txt" # Set cmd options - echo "dwc_otg.lpm_enable=0 console=tty1" > ${BOOT_DATA}/cmdline.txt + echo "dwc_otg.lpm_enable=0 console=tty1" > "${BOOT_DATA}/cmdline.txt" # Enable 64bit support if [ "${BOARD_ID}" == "rpi3-64" ]; then - echo "arm_64bit=1" >> ${BOOT_DATA}/config.txt + echo "arm_64bit=1" >> "${BOOT_DATA}/config.txt" fi } diff --git a/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh b/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.ush similarity index 100% rename from buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh rename to buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.ush diff --git a/buildroot-external/board/raspberrypi/uboot-boot.sh b/buildroot-external/board/raspberrypi/uboot-boot.ush similarity index 100% rename from buildroot-external/board/raspberrypi/uboot-boot.sh rename to buildroot-external/board/raspberrypi/uboot-boot.ush diff --git a/buildroot-external/configs/odroid_c2_defconfig b/buildroot-external/configs/odroid_c2_defconfig index f1b108c0c..f7e9cc250 100644 --- a/buildroot-external/configs/odroid_c2_defconfig +++ b/buildroot-external/configs/odroid_c2_defconfig @@ -74,7 +74,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/configs/rpi0_w_defconfig b/buildroot-external/configs/rpi0_w_defconfig index f50ae730a..04f884ef6 100644 --- a/buildroot-external/configs/rpi0_w_defconfig +++ b/buildroot-external/configs/rpi0_w_defconfig @@ -77,7 +77,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_0_w" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index 89a669d25..24c5833c2 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -76,7 +76,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index d5533fa17..7069b04db 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -77,7 +77,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-64/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-64/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig index ec2d8fe10..3343a3a5d 100644 --- a/buildroot-external/configs/rpi3_defconfig +++ b/buildroot-external/configs/rpi3_defconfig @@ -77,7 +77,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/configs/rpi_defconfig b/buildroot-external/configs/rpi_defconfig index 3de5b4769..3bd4a16f0 100644 --- a/buildroot-external/configs/rpi_defconfig +++ b/buildroot-external/configs/rpi_defconfig @@ -76,7 +76,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/configs/tinker_defconfig b/buildroot-external/configs/tinker_defconfig index d7f543230..8b661ff7d 100644 --- a/buildroot-external/configs/tinker_defconfig +++ b/buildroot-external/configs/tinker_defconfig @@ -81,7 +81,7 @@ BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin" BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot-boot.ush" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y diff --git a/buildroot-external/rootfs-overlay/usr/libexec/hassos-apparmor b/buildroot-external/rootfs-overlay/usr/libexec/hassos-apparmor index f36cadb82..aefeeed8e 100755 --- a/buildroot-external/rootfs-overlay/usr/libexec/hassos-apparmor +++ b/buildroot-external/rootfs-overlay/usr/libexec/hassos-apparmor @@ -15,31 +15,31 @@ CACHE_DIR="${PROFILES_DIR}/cache" REMOVE_DIR="${PROFILES_DIR}/remove" # Check folder structure -mkdir -p ${PROFILES_DIR} -mkdir -p ${CACHE_DIR} -mkdir -p ${REMOVE_DIR} +mkdir -p "${PROFILES_DIR}" +mkdir -p "${CACHE_DIR}" +mkdir -p "${REMOVE_DIR}" # Load/Update exists/new profiles -for profile in ${PROFILES_DIR}/*; do - if [ ! -f ${profile} ]; then +for profile in "${PROFILES_DIR}"/*; do + if [ ! -f "${profile}" ]; then continue fi # Load Profile - if ! apparmor_parser -r -W -L ${CACHE_DIR} ${profile}; then + if ! apparmor_parser -r -W -L "${CACHE_DIR}" "${profile}"; then echo "[Error]: Can't load profile ${profile}" fi done # Cleanup old profiles -for profile in ${REMOVE_DIR}/*; do - if [ ! -f ${profile} ]; then +for profile in "${REMOVE_DIR}"/*; do + if [ ! -f "${profile}" ]; then continue fi # Unload Profile - if apparmor_parser -R -W -L ${CACHE_DIR} ${profile}; then - if rm ${profile}; then + if apparmor_parser -R -W -L "${CACHE_DIR}" "${profile}"; then + if rm "${profile}"; then continue fi fi diff --git a/buildroot-external/rootfs-overlay/usr/libexec/hassos-expand b/buildroot-external/rootfs-overlay/usr/libexec/hassos-expand index 1a1c323a9..341308bbd 100755 --- a/buildroot-external/rootfs-overlay/usr/libexec/hassos-expand +++ b/buildroot-external/rootfs-overlay/usr/libexec/hassos-expand @@ -1,41 +1,42 @@ #!/bin/sh +# shellcheck disable=SC2039 set -e DEVICE_CHILD="$(findfs LABEL="hassos-data")" -DEVICE_ROOT="/dev/$(lsblk -no pkname ${DEVICE_CHILD})" +DEVICE_ROOT="/dev/$(lsblk -no pkname "${DEVICE_CHILD}")" PART_NUM="${DEVICE_CHILD: -1}" -if sfdisk -dq ${DEVICE_ROOT} | grep -q 'label: gpt'; then +if sfdisk -dq "${DEVICE_ROOT}" | grep -q 'label: gpt'; then # Need resize - if [ $(sgdisk -E ${DEVICE_ROOT}) -le 2048 ]; then + if [ "$(sgdisk -E "${DEVICE_ROOT}")" -le "2048" ]; then echo "[INFO] No resize of data partition needed" exit 0 fi # Resize & Reload partition echo "[INFO] Update hassos-data partition ${PART_NUM}" - sgdisk -e ${DEVICE_ROOT} - sgdisk -d ${PART_NUM} -n ${PART_NUM}:0:0 -c ${PART_NUM}:"hassos-data" -t ${PART_NUM}:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u ${PART_NUM}:"a52a4597-fa3a-4851-aefd-2fbe9f849079" ${DEVICE_ROOT} - sgdisk -v ${DEVICE_ROOT} + sgdisk -e "${DEVICE_ROOT}" + sgdisk -d "${PART_NUM}" -n "${PART_NUM}:0:0" -c "${PART_NUM}:hassos-data" -t "${PART_NUM}:0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "${PART_NUM}:a52a4597-fa3a-4851-aefd-2fbe9f849079" "${DEVICE_ROOT}" + sgdisk -v "${DEVICE_ROOT}" else # Need resize - UNUSED=$(sfdisk -Fq ${DEVICE_ROOT} | cut -d " " -f 3 | tail -1) - if [ -z "${UNUSED}" ] || [ ${UNUSED} -le 2048 ]; then + UNUSED=$(sfdisk -Fq "${DEVICE_ROOT}" | cut -d " " -f 3 | tail -1) + if [ -z "${UNUSED}" ] || [ "${UNUSED}" -le "2048" ]; then echo "[INFO] No resize of data partition needed" exit 0 fi - echo ", +" | sfdisk -N ${PART_NUM} ${DEVICE_ROOT} --force - sfdisk -V ${DEVICE_ROOT} + echo ", +" | sfdisk -N "${PART_NUM}" "${DEVICE_ROOT}" --force + sfdisk -V "${DEVICE_ROOT}" fi -partx -u ${DEVICE_ROOT} +partx -u "${DEVICE_ROOT}" # Resize filesystem echo "[INFO] Resize hassos-data filesystem" -e2fsck -y ${DEVICE_CHILD} -resize2fs -f ${DEVICE_CHILD} +e2fsck -y "${DEVICE_CHILD}" +resize2fs -f "${DEVICE_CHILD}" echo "[INFO] Finish hassos-data resizing" diff --git a/buildroot-external/rootfs-overlay/usr/libexec/hassos-persists-journald b/buildroot-external/rootfs-overlay/usr/libexec/hassos-persists-journald index c9d84598a..c85c5812f 100755 --- a/buildroot-external/rootfs-overlay/usr/libexec/hassos-persists-journald +++ b/buildroot-external/rootfs-overlay/usr/libexec/hassos-persists-journald @@ -2,20 +2,18 @@ set -e MACHINE_ID=$(cat /etc/machine-id) -CURRENT_LOGS=/var/log/journal/${MACHINE_ID} # Loop all logs folder and move for log_folder in /var/log/journal/*; do # Not a log folder - if [ ! -d ${log_folder} ]; then + if [ ! -d "${log_folder}" ]; then continue fi # Current log folder - if (echo ${log_folder} | grep ${MACHINE_ID}); then + if (echo "${log_folder}" | grep "${MACHINE_ID}"); then continue fi - rm -rf ${log_folder} + rm -rf "${log_folder}" done - diff --git a/buildroot-external/rootfs-overlay/usr/libexec/hassos-rate b/buildroot-external/rootfs-overlay/usr/libexec/hassos-rate index 517b652de..942e6d58d 100755 --- a/buildroot-external/rootfs-overlay/usr/libexec/hassos-rate +++ b/buildroot-external/rootfs-overlay/usr/libexec/hassos-rate @@ -1,4 +1,5 @@ #!/bin/sh +# shellcheck disable=SC2112 set -e diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli b/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli index e6f5914c7..4bce3695a 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli @@ -11,13 +11,14 @@ CLI_DATA=/mnt/data/cli mkdir -p ${CLI_DATA} # Run CLI +# shellcheck disable=SC2086 docker container run \ --rm -ti --init \ --security-opt apparmor="${APPARMOR}" \ -v ${CLI_DATA}:/data \ -v /etc/machine-id:/etc/machine-id:ro \ $DOCKER_ARGS \ - ${CLI} + "${CLI}" # Jump to root shell if [ $? -eq 10 ]; then diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 5338eb830..bf6733aec 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -87,9 +87,10 @@ fi ## # Firmware update / Only USB UPTIME=$(awk '{printf "%0.f", $1}' /proc/uptime) -if ls ${USB_CONFIG}/*.raucb > /dev/null 2>&1 && [ ${UPTIME} -ge 180 ]; then +if ls ${USB_CONFIG}/*.raucb > /dev/null 2>&1 && [ "${UPTIME}" -ge "180" ]; then echo "[Info] Performe a firmware update" + # shellcheck disable=SC2012 rauc_filename=$(ls ${USB_CONFIG}/*.raucb | head -n 1) if rauc install "${rauc_filename}"; then echo "[Info] Firmware update success" diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor b/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor index eef027765..6e93074e9 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor @@ -10,16 +10,18 @@ APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_ # Init supervisor HASSOS_DATA=/mnt/data/supervisor -HASSOS_IMAGE_ID=$(docker inspect --format='{{.Id}}' ${SUPERVISOR}) +HASSOS_IMAGE_ID=$(docker inspect --format='{{.Id}}' "${SUPERVISOR}") HASSOS_CONTAINER_ID=$(docker inspect --format='{{.Image}}' hassos_supervisor || echo "") # Fix wrong AppArmor profiles -if ! grep ${APPARMOR} /sys/kernel/security/apparmor/profiles > /dev/null; then +if ! grep "${APPARMOR}" /sys/kernel/security/apparmor/profiles > /dev/null; then APPARMOR=docker-default fi runSupervisor() { docker container rm --force hassos_supervisor || true + + # shellcheck disable=SC2086 docker container run --name hassos_supervisor \ --security-opt apparmor="${APPARMOR}" \ -v /var/run/docker.sock:/var/run/docker.sock \ @@ -29,7 +31,7 @@ runSupervisor() { -e SUPERVISOR_SHARE=${HASSOS_DATA} \ -e SUPERVISOR_NAME=hassos_supervisor \ $DOCKER_ARGS \ - ${SUPERVISOR} + "${SUPERVISOR}" } # Run supervisor diff --git a/buildroot-external/scripts/hdd-image.sh b/buildroot-external/scripts/hdd-image.sh index ad8b5b5bb..c9d4ad93d 100755 --- a/buildroot-external/scripts/hdd-image.sh +++ b/buildroot-external/scripts/hdd-image.sh @@ -1,4 +1,5 @@ #!/bin/bash +# shellcheck disable=SC2155 BOOT_UUID="b3dd0952-733c-4c88-8cba-cab9b8b4377f" BOOTSTATE_UUID="33236519-7F32-4DFF-8002-3390B62C309D" @@ -9,7 +10,6 @@ KERNEL1_UUID="fc02a4f0-5350-406f-93a2-56cbed636b5f" OVERLAY_UUID="f1326040-5236-40eb-b683-aaa100a9afcf" DATA_UUID="a52a4597-fa3a-4851-aefd-2fbe9f849079" -SPL_SIZE=8M BOOT_SIZE=(32M 24M) BOOTSTATE_SIZE=8M SYSTEM_SIZE=256M @@ -22,7 +22,7 @@ function size2sectors() { s=0 for v in "${@}" do - let s+=$(echo $v | awk \ + ((s+=$(echo "$v" | awk \ 'BEGIN{IGNORECASE = 1} function printsectors(n,b,p) {printf "%u\n", n*b^p/512} /B$/{ printsectors($1, 1, 0)}; @@ -34,6 +34,7 @@ function size2sectors() { /MB$/{ printsectors($1, 10, 6)}; /GB$/{ printsectors($1, 10, 9)}; /TB$/{ printsectors($1, 10, 12)}') + )) done echo $s } @@ -51,7 +52,7 @@ function get_boot_size() { function create_spl_image() { local boot_img="$(path_spl_img)" - dd if=/dev/zero of=${boot_img} bs=512 count=16382 + dd if=/dev/zero of="${boot_img}" bs=512 count=16382 } @@ -60,32 +61,33 @@ function create_boot_image() { local boot_img="$(path_boot_img)" echo "mtools_skip_check=1" > ~/.mtoolsrc - dd if=/dev/zero of=${boot_img} bs=$(get_boot_size) count=1 - mkfs.vfat -n "hassos-boot" ${boot_img} - mcopy -i ${boot_img} -sv ${boot_data}/* :: + dd if=/dev/zero of="${boot_img}" bs="$(get_boot_size)" count=1 + mkfs.vfat -n "hassos-boot" "${boot_img}" + mcopy -i "${boot_img}" -sv "${boot_data}"/* :: } function create_overlay_image() { local overlay_img="$(path_overlay_img)" - dd if=/dev/zero of=${overlay_img} bs=${OVERLAY_SIZE} count=1 - mkfs.ext4 -L "hassos-overlay" -E lazy_itable_init=0,lazy_journal_init=0 ${overlay_img} + dd if=/dev/zero of="${overlay_img}" bs=${OVERLAY_SIZE} count=1 + mkfs.ext4 -L "hassos-overlay" -E lazy_itable_init=0,lazy_journal_init=0 "${overlay_img}" } function create_kernel_image() { local kernel_img="$(path_kernel_img)" + # shellcheck disable=SC2153 local kernel="${BINARIES_DIR}/${KERNEL_FILE}" # Make image - dd if=/dev/zero of=${kernel_img} bs=${KERNEL_SIZE} count=1 - mkfs.ext4 -L "hassos-kernel" -E lazy_itable_init=0,lazy_journal_init=0 ${kernel_img} + dd if=/dev/zero of="${kernel_img}" bs=${KERNEL_SIZE} count=1 + mkfs.ext4 -L "hassos-kernel" -E lazy_itable_init=0,lazy_journal_init=0 "${kernel_img}" # Mount / init file structs mkdir -p /mnt/data/ - mount -o loop ${kernel_img} /mnt/data - cp -f ${kernel} /mnt/data/ + mount -o loop "${kernel_img}" /mnt/data + cp -f "${kernel}" /mnt/data/ umount /mnt/data } @@ -125,54 +127,54 @@ function _create_disk_gpt() { ## # Write new image & GPT - dd if=/dev/zero of=${hdd_img} bs=1G count=${hdd_count} - sgdisk -o ${hdd_img} + dd if=/dev/zero of="${hdd_img}" bs=1G count="${hdd_count}" + sgdisk -o "${hdd_img}" ## # Partition layout # SPL if [ "${BOOT_SYS}" == "spl" ]; then - sgdisk -j 16384 ${hdd_img} + sgdisk -j 16384 "${hdd_img}" fi # boot - boot_offset="$(sgdisk -F ${hdd_img})" - sgdisk -n 0:${boot_offset}:+$(get_boot_size) -c 0:"hassos-boot" -t 0:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 0:${BOOT_UUID} ${hdd_img} + boot_offset="$(sgdisk -F "${hdd_img}")" + sgdisk -n "0:${boot_offset}:+$(get_boot_size)" -c 0:"hassos-boot" -t 0:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 0:${BOOT_UUID} "${hdd_img}" # Kernel 0 - kernel_offset="$(sgdisk -F ${hdd_img})" - sgdisk -n 0:0:+${KERNEL_SIZE} -c 0:"hassos-kernel0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${KERNEL0_UUID} ${hdd_img} + kernel_offset="$(sgdisk -F "${hdd_img}")" + sgdisk -n "0:0:+${KERNEL_SIZE}" -c 0:"hassos-kernel0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${KERNEL0_UUID}" "${hdd_img}" # System 0 - rootfs_offset="$(sgdisk -F ${hdd_img})" - sgdisk -n 0:0:+${SYSTEM_SIZE} -c 0:"hassos-system0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${SYSTEM0_UUID} ${hdd_img} + rootfs_offset="$(sgdisk -F "${hdd_img}")" + sgdisk -n "0:0:+${SYSTEM_SIZE}" -c 0:"hassos-system0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${SYSTEM0_UUID}" "${hdd_img}" # Kernel 1 - sgdisk -n 0:0:+${KERNEL_SIZE} -c 0:"hassos-kernel1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${KERNEL1_UUID} ${hdd_img} + sgdisk -n "0:0:+${KERNEL_SIZE}" -c 0:"hassos-kernel1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${KERNEL1_UUID}" "${hdd_img}" # System 1 - sgdisk -n 0:0:+${SYSTEM_SIZE} -c 0:"hassos-system1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${SYSTEM1_UUID} ${hdd_img} + sgdisk -n "0:0:+${SYSTEM_SIZE}" -c 0:"hassos-system1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${SYSTEM1_UUID}" "${hdd_img}" # Bootstate - sgdisk -n 0:0:+${BOOTSTATE_SIZE} -c 0:"hassos-bootstate" -u 0:${BOOTSTATE_UUID} ${hdd_img} + sgdisk -n "0:0:+${BOOTSTATE_SIZE}" -c 0:"hassos-bootstate" -u 0:${BOOTSTATE_UUID} "${hdd_img}" # Overlay - overlay_offset="$(sgdisk -F ${hdd_img})" - sgdisk -n 0:0:+${OVERLAY_SIZE} -c 0:"hassos-overlay" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${OVERLAY_UUID} ${hdd_img} + overlay_offset="$(sgdisk -F "${hdd_img}")" + sgdisk -n "0:0:+${OVERLAY_SIZE}" -c 0:"hassos-overlay" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${OVERLAY_UUID}" "${hdd_img}" # Data - data_offset="$(sgdisk -F ${hdd_img})" - sgdisk -n 0:0:+${DATA_SIZE} -c 0:"hassos-data" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${DATA_UUID} ${hdd_img} + data_offset="$(sgdisk -F "${hdd_img}")" + sgdisk -n "0:0:+${DATA_SIZE}" -c 0:"hassos-data" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${DATA_UUID}" "${hdd_img}" ## # Write Images sgdisk -v - dd if=${boot_img} of=${hdd_img} conv=notrunc bs=512 seek=${boot_offset} - dd if=${kernel_img} of=${hdd_img} conv=notrunc bs=512 seek=${kernel_offset} - dd if=${rootfs_img} of=${hdd_img} conv=notrunc bs=512 seek=${rootfs_offset} - dd if=${overlay_img} of=${hdd_img} conv=notrunc bs=512 seek=${overlay_offset} - dd if=${data_img} of=${hdd_img} conv=notrunc bs=512 seek=${data_offset} + dd if="${boot_img}" of"=${hdd_img}" conv=notrunc bs=512 seek="${boot_offset}" + dd if="${kernel_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${kernel_offset}" + dd if="${rootfs_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${rootfs_offset}" + dd if="${overlay_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${overlay_offset}" + dd if="${data_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${data_offset}" # Fix boot if [ "${BOOT_SYS}" == "hyprid" ]; then @@ -192,38 +194,37 @@ function _create_disk_mbr() { local hdd_img="$(hassos_image_name img)" local hdd_count=${DISK_SIZE:-2} local disk_layout="${BINARIES_DIR}/disk.layout" + local boot_start=16384 + + local boot_size=$(($(size2sectors BOOT_SIZE)+2)) + local kernel0_size=$(($(size2sectors KERNEL_SIZE)+2)) + local system0_size=$(($(size2sectors SYSTEM_SIZE)+2)) + local kernel1_size=$(($(size2sectors KERNEL_SIZE)+2)) + local system1_size=$(($(size2sectors SYSTEM_SIZE)+2)) + local bootstate_size=$(($(size2sectors BOOTSTATE_SIZE)+2)) + local overlay_size=$(($(size2sectors OVERLAY_SIZE)+2)) + local data_size=$(($(size2sectors DATA_SIZE)+2)) + local extended_size=$((kernel0_size+system0_size+kernel1_size+system1_size+bootstate_size+2)) + + # we add one here for the extended header. + local extended_start=$((boot_start+boot_size+1)) + local kernel0_start=$((extended_start+1)) + local system0_start=$((kernel0_start+kernel0_size+1)) + local kernel1_start=$((system0_start+system0_size+1)) + local system1_start=$((kernel1_start+kernel1_size+1)) + local bootstate_start=$((system1_start+system1_size+1)) + local overlay_start=$((extended_start+extended_size+1)) + local data_start=$((overlay_start+overlay_size+1)) + + local boot_offset=${boot_start} + local kernel_offset=${kernel0_start} + local rootfs_offset=${system0_start} + local overlay_offset=${overlay_start} + local data_offset=${data_start} # Write new image & MBR - dd if=/dev/zero of=${hdd_img} bs=1G count=${hdd_count} + dd if=/dev/zero of="${hdd_img}" bs=1G count="${hdd_count}" - let boot_start=16384 - - let boot_size=$(size2sectors ${BOOT_SIZE})+2 - let kernel0_size=$(size2sectors ${KERNEL_SIZE})+2 - let system0_size=$(size2sectors ${SYSTEM_SIZE})+2 - let kernel1_size=$(size2sectors ${KERNEL_SIZE})+2 - let system1_size=$(size2sectors ${SYSTEM_SIZE})+2 - let bootstate_size=$(size2sectors ${BOOTSTATE_SIZE})+2 - let overlay_size=$(size2sectors ${OVERLAY_SIZE})+2 - let data_size=$(size2sectors ${DATA_SIZE})+2 - let extended_size=${kernel0_size}+${system0_size}+${kernel1_size}+${system1_size}+${bootstate_size}+2 - - - let extended_start=${boot_start}+${boot_size}+1 - let kernel0_start=${extended_start}+1 # we add one here for the extended header. - let system0_start=${kernel0_start}+${kernel0_size}+1 - let kernel1_start=${system0_start}+${system0_size}+1 - let system1_start=${kernel1_start}+${kernel1_size}+1 - let bootstate_start=${system1_start}+${system1_size}+1 - let overlay_start=${extended_start}+${extended_size}+1 - let data_start=${overlay_start}+${overlay_size}+1 - - - let boot_offset=${boot_start} - let kernel_offset=${kernel0_start} - let rootfs_offset=${system0_start} - let overlay_offset=${overlay_start} - let data_offset=${data_start} # Update disk layout ( echo "label: dos" @@ -238,17 +239,17 @@ function _create_disk_mbr() { echo "hassos-bootstate : start= ${bootstate_start}, size= ${bootstate_size}, type=83" #Make a logical Linux partition echo "hassos-overlay : start= ${overlay_start}, size= ${overlay_size}, type=83" #Make a Linux partition echo "hassos-data : start= ${data_start}, size= ${data_size}, type=83" #Make a Linux partition - ) > ${disk_layout} + ) > "${disk_layout}" # Update Labels - sfdisk ${hdd_img} < ${disk_layout} + sfdisk "${hdd_img}" < "${disk_layout}" # Write Images - dd if=${boot_img} of=${hdd_img} conv=notrunc bs=512 seek=${boot_offset} - dd if=${kernel_img} of=${hdd_img} conv=notrunc bs=512 seek=${kernel_offset} - dd if=${rootfs_img} of=${hdd_img} conv=notrunc bs=512 seek=${rootfs_offset} - dd if=${overlay_img} of=${hdd_img} conv=notrunc bs=512 seek=${overlay_offset} - dd if=${data_img} of=${hdd_img} conv=notrunc bs=512 seek=${data_offset} + dd if="${boot_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${boot_offset}" + dd if="${kernel_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${kernel_offset}" + dd if="${rootfs_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${rootfs_offset}" + dd if="${overlay_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${overlay_offset}" + dd if="${data_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${data_offset}" # Wripte SPL _fix_disk_spl_mbr @@ -258,19 +259,18 @@ function _create_disk_mbr() { function _fix_disk_hyprid() { local hdd_img="$(hassos_image_name img)" - sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" ${hdd_img} - dd if=${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr.img of=${hdd_img} conv=notrunc bs=512 count=1 + sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" "${hdd_img}" + dd if="${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr.img" of="${hdd_img}" conv=notrunc bs=512 count=1 } function _fix_disk_spl_gpt() { local hdd_img="$(hassos_image_name img)" local spl_img="$(path_spl_img)" - local backup="/tmp/mbr-backup.bin" - sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" ${hdd_img} - dd if=${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-spl.img of=${hdd_img} conv=notrunc bs=512 count=1 - dd if=${spl_img} of=${hdd_img} conv=notrunc bs=512 seek=2 skip=2 + sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" "${hdd_img}" + dd if="${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-spl.img" of="${hdd_img}" conv=notrunc bs=512 count=1 + dd if="${spl_img}" of="${hdd_img}" conv=notrunc bs=512 seek=2 skip=2 } @@ -279,8 +279,8 @@ function _fix_disk_spl_mbr() { local spl_img="$(path_spl_img)" # backup MBR - dd if=${spl_img} of=${hdd_img} conv=notrunc bs=1 count=440 - dd if=${spl_img} of=${hdd_img} conv=notrunc bs=512 seek=1 skip=1 + dd if="${spl_img}" of="${hdd_img}" conv=notrunc bs=1 count=440 + dd if="${spl_img}" of="${hdd_img}" conv=notrunc bs=512 seek=1 skip=1 } @@ -290,22 +290,22 @@ function convert_disk_image_virtual() { local hdd_vhdx="$(hassos_image_name vhdx)" local hdd_vdi="$(hassos_image_name vdi)" - rm -f ${hdd_vmdk} - rm -f ${hdd_vhdx} - rm -f ${hdd_vdi} + rm -f "${hdd_vmdk}" + rm -f "${hdd_vhdx}" + rm -f "${hdd_vdi}" - qemu-img convert -O vmdk ${hdd_img} ${hdd_vmdk} - qemu-img convert -O vhdx ${hdd_img} ${hdd_vhdx} - qemu-img convert -O vdi ${hdd_img} ${hdd_vdi} + qemu-img convert -O vmdk "${hdd_img}" "${hdd_vmdk}" + qemu-img convert -O vhdx "${hdd_img}" "${hdd_vhdx}" + qemu-img convert -O vdi "${hdd_img}" "${hdd_vdi}" - rm -f ${hdd_img} + rm -f "${hdd_img}" } function convert_disk_image_gz() { local hdd_ext=${1:-img} - local hdd_img="$(hassos_image_name ${hdd_ext})" + local hdd_img="$(hassos_image_name "${hdd_ext}")" - rm -f ${hdd_img}.gz - gzip --best ${hdd_img} + rm -f "${hdd_img}.gz" + gzip --best "${hdd_img}" } diff --git a/buildroot-external/scripts/ota.sh b/buildroot-external/scripts/ota.sh index 93fdba02a..4f6c101c7 100755 --- a/buildroot-external/scripts/ota.sh +++ b/buildroot-external/scripts/ota.sh @@ -1,4 +1,5 @@ #!/bin/bash +# shellcheck disable=SC2155 function create_ota_update() { local ota_file="$(hassos_image_name raucb)" @@ -16,13 +17,13 @@ function create_ota_update() { return 0 fi - rm -rf ${rauc_folder} ${ota_file} - mkdir -p ${rauc_folder} + rm -rf "${rauc_folder}" "${ota_file}" + mkdir -p "${rauc_folder}" - cp -f ${kernel} ${rauc_folder}/kernel.ext4 - cp -f ${boot} ${rauc_folder}/boot.vfat - cp -f ${rootfs} ${rauc_folder}/rootfs.img - cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/rauc-hook ${rauc_folder}/hook + cp -f "${kernel}" "${rauc_folder}/kernel.ext4" + cp -f "${boot}" "${rauc_folder}/boot.vfat" + cp -f "${rootfs}" "${rauc_folder}/rootfs.img" + cp -f "${BR2_EXTERNAL_HASSOS_PATH}/misc/rauc-hook" "${rauc_folder}/hook" ( echo "[update]" @@ -37,18 +38,18 @@ function create_ota_update() { echo "filename=kernel.ext4" echo "[image.rootfs]" echo "filename=rootfs.img" - ) > ${rauc_folder}/manifest.raucm + ) > "${rauc_folder}/manifest.raucm" # SPL if [ "${BOOT_SYS}" == "spl" ]; then - cp -f ${spl} ${rauc_folder}/spl.img + cp -f "${spl}" "${rauc_folder}/spl.img" ( echo "[image.spl]" echo "filename=spl.img" echo "hooks=install" - ) >> ${rauc_folder}/manifest.raucm + ) >> "${rauc_folder}/manifest.raucm" fi - rauc bundle -d --cert=${cert} --key=${key} ${rauc_folder} ${ota_file} + rauc bundle -d --cert="${cert}" --key="${key}" "${rauc_folder}" "${ota_file}" } diff --git a/buildroot-external/scripts/post-build.sh b/buildroot-external/scripts/post-build.sh index 0e8a7d770..dee8699da 100755 --- a/buildroot-external/scripts/post-build.sh +++ b/buildroot-external/scripts/post-build.sh @@ -1,15 +1,16 @@ #!/bin/bash +# shellcheck disable=SC1090 set -e SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts BOARD_DIR=${2} -. ${BR2_EXTERNAL_HASSOS_PATH}/meta -. ${BOARD_DIR}/meta +. "${BR2_EXTERNAL_HASSOS_PATH}/meta" +. "${BOARD_DIR}/meta" -. ${SCRIPT_DIR}/rootfs-layer.sh -. ${SCRIPT_DIR}/name.sh -. ${SCRIPT_DIR}/rauc.sh +. "${SCRIPT_DIR}/rootfs-layer.sh" +. "${SCRIPT_DIR}/name.sh" +. "${SCRIPT_DIR}/rauc.sh" # HassOS tasks @@ -17,6 +18,7 @@ fix_rootfs install_hassos_cli # Write os-release +# shellcheck disable=SC2153 ( echo "NAME=${HASSOS_NAME}" echo "VERSION=\"${VERSION_MAJOR}.${VERSION_BUILD} (${BOARD_NAME})\"" @@ -27,13 +29,13 @@ install_hassos_cli echo "HOME_URL=https://hass.io/" echo "VARIANT=\"${HASSOS_NAME} ${BOARD_NAME}\"" echo "VARIANT_ID=${BOARD_ID}" -) > ${TARGET_DIR}/usr/lib/os-release +) > "${TARGET_DIR}/usr/lib/os-release" # Write machine-info ( echo "CHASSIS=${CHASSIS}" echo "DEPLOYMENT=${DEPLOYMENT}" -) > ${TARGET_DIR}/etc/machine-info +) > "${TARGET_DIR}/etc/machine-info" # Setup RAUC diff --git a/buildroot-external/scripts/post-image.sh b/buildroot-external/scripts/post-image.sh index 163dd16f4..10df39bd2 100755 --- a/buildroot-external/scripts/post-image.sh +++ b/buildroot-external/scripts/post-image.sh @@ -1,19 +1,20 @@ #!/bin/bash +# shellcheck disable=SC1090 set -e SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts BOARD_DIR=${2} HOOK_FILE=${3} -. ${BR2_EXTERNAL_HASSOS_PATH}/meta -. ${BOARD_DIR}/meta +. "${BR2_EXTERNAL_HASSOS_PATH}/meta" +. "${BOARD_DIR}/meta" -. ${SCRIPT_DIR}/hdd-image.sh -. ${SCRIPT_DIR}/rootfs-layer.sh -. ${SCRIPT_DIR}/name.sh -. ${SCRIPT_DIR}/rauc.sh -. ${SCRIPT_DIR}/ota.sh -. ${HOOK_FILE} +. "${SCRIPT_DIR}/hdd-image.sh" +. "${SCRIPT_DIR}/rootfs-layer.sh" +. "${SCRIPT_DIR}/name.sh" +. "${SCRIPT_DIR}/rauc.sh" +. "${SCRIPT_DIR}/ota.sh" +. "${HOOK_FILE}" # Cleanup rm -rf "$(path_boot_dir)" diff --git a/buildroot-external/scripts/rauc.sh b/buildroot-external/scripts/rauc.sh index ade1b9205..20f5d5888 100755 --- a/buildroot-external/scripts/rauc.sh +++ b/buildroot-external/scripts/rauc.sh @@ -15,17 +15,16 @@ function _create_rauc_header() { echo "[keyring]" echo "path=/etc/rauc/keyring.pem" - ) > ${TARGET_DIR}/etc/rauc/system.conf + ) > "${TARGET_DIR}/etc/rauc/system.conf" } function _write_rauc_boot() { - local boot_device=${1} ( echo "[slot.boot.0]" echo "device=/dev/disk/by-partlabel/hassos-boot" echo "type=vfat" - ) >> ${TARGET_DIR}/etc/rauc/system.conf + ) >> "${TARGET_DIR}/etc/rauc/system.conf" # SPL if ! [[ "${BOOT_SYS}" =~ (spl|mbr) ]]; then @@ -36,7 +35,7 @@ function _write_rauc_boot() { echo "[slot.spl.0]" echo "device=/dev/disk/by-partlabel/hassos-boot" echo "type=raw" - ) >> ${TARGET_DIR}/etc/rauc/system.conf + ) >> "${TARGET_DIR}/etc/rauc/system.conf" } @@ -54,12 +53,12 @@ function _write_rauc_system() { echo "device=/dev/disk/by-partlabel/hassos-system${slot_num}" echo "type=raw" echo "parent=kernel.${slot_num}" - ) >> ${TARGET_DIR}/etc/rauc/system.conf + ) >> "${TARGET_DIR}/etc/rauc/system.conf" } function write_rauc_config() { - mkdir -p ${TARGET_DIR}/etc/rauc + mkdir -p "${TARGET_DIR}/etc/rauc" _create_rauc_header _write_rauc_boot @@ -70,23 +69,23 @@ function write_rauc_config() { function install_rauc_certs() { if [ "${DEPLOYMENT}" == "production" ]; then - cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/rel-ca.pem ${TARGET_DIR}/etc/rauc/keyring.pem + cp "${BR2_EXTERNAL_HASSOS_PATH}/misc/rel-ca.pem" "${TARGET_DIR}/etc/rauc/keyring.pem" else - cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/dev-ca.pem ${TARGET_DIR}/etc/rauc/keyring.pem + cp "${BR2_EXTERNAL_HASSOS_PATH}/misc/dev-ca.pem" "${TARGET_DIR}/etc/rauc/keyring.pem" fi } function install_bootloader_config() { if [ "${BOOTLOADER}" == "uboot" ]; then - echo -e "/dev/disk/by-partlabel/hassos-bootstate\t0x0000\t${BOOT_ENV_SIZE}" > ${TARGET_DIR}/etc/fw_env.config + echo -e "/dev/disk/by-partlabel/hassos-bootstate\t0x0000\t${BOOT_ENV_SIZE}" > "${TARGET_DIR}/etc/fw_env.config" else - cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb ${TARGET_DIR}/etc/barebox-state.dtb + cp -f "${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb" "${TARGET_DIR}/etc/barebox-state.dtb" fi # Fix MBR if [ "${BOOT_SYS}" == "mbr" ]; then - mkdir -p ${TARGET_DIR}/usr/lib/udev/rules.d - cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-part.rules ${TARGET_DIR}/usr/lib/udev/rules.d/ + mkdir -p "${TARGET_DIR}/usr/lib/udev/rules.d" + cp -f "${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-part.rules" "${TARGET_DIR}/usr/lib/udev/rules.d/" fi } diff --git a/buildroot-external/scripts/rootfs-layer.sh b/buildroot-external/scripts/rootfs-layer.sh index 45f2918fc..1c65b83ce 100755 --- a/buildroot-external/scripts/rootfs-layer.sh +++ b/buildroot-external/scripts/rootfs-layer.sh @@ -3,35 +3,35 @@ function fix_rootfs() { # Cleanup etc - rm -rf ${TARGET_DIR}/etc/init.d - rm -rf ${TARGET_DIR}/etc/network - rm -rf ${TARGET_DIR}/etc/X11 - rm -rf ${TARGET_DIR}/etc/xdg + rm -rf "${TARGET_DIR:?}/etc/init.d" + rm -rf "${TARGET_DIR:?}/etc/network" + rm -rf "${TARGET_DIR:?}/etc/X11" + rm -rf "${TARGET_DIR:?}/etc/xdg" # Cleanup root - rm -rf ${TARGET_DIR}/media - rm -rf ${TARGET_DIR}/srv - rm -rf ${TARGET_DIR}/opt + rm -rf "${TARGET_DIR:?}/media" + rm -rf "${TARGET_DIR:?}/srv" + rm -rf "${TARGET_DIR:?}/opt" # Cleanup miscs - rm -rf ${TARGET_DIR}/usr/lib/modules-load.d + rm -rf "${TARGET_DIR}/usr/lib/modules-load.d" # Fix: permission for system connection files - chmod 600 ${TARGET_DIR}/usr/share/system-connections/* + chmod 600 "${TARGET_DIR}/usr/share/system-connections"/* # Fix: tempfs with /srv - sed -i "/srv/d" ${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf + sed -i "/srv/d" "${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf" # Fix: Could not generate persistent MAC address - sed -i "s/MACAddressPolicy=persistent/MACAddressPolicy=none/g" ${TARGET_DIR}/usr/lib/systemd/network/99-default.link + sed -i "s/MACAddressPolicy=persistent/MACAddressPolicy=none/g" "${TARGET_DIR}/usr/lib/systemd/network/99-default.link" } function install_hassos_cli() { - sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" ${TARGET_DIR}/etc/passwd + sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" "${TARGET_DIR}/etc/passwd" - if ! grep "hassos-cli" ${TARGET_DIR}/etc/shells; then - echo "/usr/sbin/hassos-cli" >> ${TARGET_DIR}/etc/shells + if ! grep "hassos-cli" "${TARGET_DIR}/etc/shells"; then + echo "/usr/sbin/hassos-cli" >> "${TARGET_DIR}/etc/shells" fi } diff --git a/scripts/build-all.sh b/scripts/build-all.sh index 00917982b..2e345c98e 100755 --- a/scripts/build-all.sh +++ b/scripts/build-all.sh @@ -6,7 +6,7 @@ mkdir -p /build/release all_platforms=(ova rpi rpi0_w rpi2 rpi3 rpi3_64 tinker odroid_c2) for platform in "${all_platforms[@]}"; do make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external \ - ${platform}_defconfig + "${platform}_defconfig" make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external cp -f /build/buildroot/output/images/hassos_* /build/release/ diff --git a/scripts/enter.sh b/scripts/enter.sh index 3d5f3d52e..442379321 100755 --- a/scripts/enter.sh +++ b/scripts/enter.sh @@ -2,4 +2,4 @@ modprobe overlayfs docker build -t hassbuildroot . -docker run -it --rm --privileged -v $(pwd):/build -v ${CACHE_DIR:=~/hassos-cache}:/cache hassbuildroot bash +docker run -it --rm --privileged -v "$(pwd):/build" -v "${CACHE_DIR:=~/hassos-cache}:/cache" hassbuildroot bash diff --git a/scripts/ovf-create.sh b/scripts/ovf-create.sh deleted file mode 100755 index df370c517..000000000 --- a/scripts/ovf-create.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -e - -VboxManage createvm --name Hass.io --ostype Linux_64 --register -VBoxManage modifyvm Hass.io --cpus 2 --memory 1048 --firmware efi -VBoxManage modifyvm Hass.io --nic1 bridged -VBoxManage storageattach Hass.io --storagectl "SATA Controller" --device 0 --port 0 --type vmdk --medium $1 - -VBoxManage export Hass.io --ovf20 --vendor "Home Assistant" --vendorurl "http://hass.io" --output $2 diff --git a/scripts/patches.sh b/scripts/patches.sh index 3e94f764c..58ddd9434 100755 --- a/scripts/patches.sh +++ b/scripts/patches.sh @@ -2,5 +2,5 @@ set -e for patch_file in buildroot-patches/*; do - patch -d buildroot/ -p1 < ${patch_file}; + patch -d buildroot/ -p1 < "${patch_file}"; done