From a686131ce1e84db3215cf0dd79d41d3b2141a94f Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 22 Dec 2019 11:50:14 +0200 Subject: [PATCH 1/4] S01mountall: mkdir -p all overlay folders --- board/common/overlay/etc/init.d/S01mountall | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/board/common/overlay/etc/init.d/S01mountall b/board/common/overlay/etc/init.d/S01mountall index 84f75caa4e..74ba7acbb0 100755 --- a/board/common/overlay/etc/init.d/S01mountall +++ b/board/common/overlay/etc/init.d/S01mountall @@ -16,7 +16,9 @@ mount_overlay() { grep -qw overlay /proc/filesystems || return msg_begin "Mounting overlay filesystems" - grep -oE '/data/.overlay-[^ ]+' /etc/fstab.overlay | xargs mkdir -p + grep -oE 'lowerdir=[^,]+' /etc/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p + grep -oE 'upperdir=[^,]+' /etc/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p + grep -oE 'workdir=[^ ]+' /etc/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p /bin/mount -T /etc/fstab.overlay -a test $? == 0 && msg_done || msg_fail } From 6340380d0dec0e3f84668eaab77ff033a36010e3 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 27 Dec 2019 23:34:05 +0200 Subject: [PATCH 2/4] Add /sbin/service helper script --- board/common/overlay/sbin/service | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 board/common/overlay/sbin/service diff --git a/board/common/overlay/sbin/service b/board/common/overlay/sbin/service new file mode 100755 index 0000000000..7f1e2e07d5 --- /dev/null +++ b/board/common/overlay/sbin/service @@ -0,0 +1,24 @@ +#!/bin/bash + +function show_usage() { + echo "Usage: service [command]" + echo "Usual commands include: start, stop, restart" + echo "Type 'service ' without command for service-specific usage" +} + +if [[ -z "$1" ]]; then + show_usage 1>&2 + exit 1 +fi + +SERVICE=$1 + +shift # Remove $1 +SCRIPT=(/etc/init.d/S*${SERVICE}) + +if ! [[ -x "${SCRIPT}" ]]; then + echo "No such service: ${SERVICE}" + exit 1 +fi + +source ${SCRIPT} "$@" From 6fe7087e9712063e5721e0a9661c32efbeb7212d Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 27 Dec 2019 23:48:51 +0200 Subject: [PATCH 3/4] S14postupgrade: add support for common post-upgrade.sh --- board/common/overlay/etc/init.d/S14postupgrade | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/board/common/overlay/etc/init.d/S14postupgrade b/board/common/overlay/etc/init.d/S14postupgrade index 248bb2c2ef..7822d97f67 100755 --- a/board/common/overlay/etc/init.d/S14postupgrade +++ b/board/common/overlay/etc/init.d/S14postupgrade @@ -4,6 +4,8 @@ SYS_VERSION_FILE="/etc/version" VERSION_FILE="/data/etc/version" POST_UPGRADE_DIR="/usr/share/post-upgrade" +LOG="/var/log/post-upgrade.log" + test -n "${OS_VERSION}" || source /etc/init.d/base @@ -26,15 +28,26 @@ function run_post_upgrade() { version="$(source ${VERSION_FILE} 2>/dev/null && echo ${OS_VERSION})" sys_version="$(source ${SYS_VERSION_FILE} 2>/dev/null && echo ${OS_VERSION})" + echo "---- post-upgrade from ${version} to ${sys_version} ----" >> ${LOG} + versions=$(ls -1 ${POST_UPGRADE_DIR} | cut -d '.' -f 1) for v in ${versions}; do + if [[ ${v} == "post-upgrade" ]]; then + continue + fi + if [[ -z "${version}" ]] || version_gt ${v} ${version}; then msg_begin "Post-upgrading to version ${v}" - out=$(${POST_UPGRADE_DIR}/${v}.sh 2>&1) + ${POST_UPGRADE_DIR}/${v}.sh >> ${LOG} 2>&1 test $? == 0 && msg_done || msg_fail - echo "${out}" | logger -t post-upgrade fi done + + if [[ -x "${POST_UPGRADE_DIR}/post-upgrade.sh" ]]; then + msg_begin "Running common post-upgrade script" + ${POST_UPGRADE_DIR}/post-upgrade.sh >> ${LOG} 2>&1 + test $? == 0 && msg_done || msg_fail + fi } case "$1" in From 6d374f64b72f22d0822bd57978943abcbbf02ce1 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 27 Dec 2019 23:51:50 +0200 Subject: [PATCH 4/4] S14postupgrade: use semver-sort --- board/common/overlay/etc/init.d/S14postupgrade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/common/overlay/etc/init.d/S14postupgrade b/board/common/overlay/etc/init.d/S14postupgrade index 7822d97f67..a2fd9fcc8d 100755 --- a/board/common/overlay/etc/init.d/S14postupgrade +++ b/board/common/overlay/etc/init.d/S14postupgrade @@ -17,7 +17,7 @@ test "${hash}" == "${sys_hash}" && exit 0 test -d ${POST_UPGRADE_DIR} || exit 0 function version_gt() { - if [[ "$1" != "$2" ]] && [[ $(echo -e "$2\n$1" | sort -t . | head -n 1) == "$2" ]]; then + if [[ "$1" != "$2" ]] && [[ $(echo -e "$2\n$1" | semver-sort | head -n 1) == "$2" ]]; then return 0 else return 1