Fix script execution not being triggered

When installing a release, the script was not getting executed,
on software.log we couldn't see the script output.

This is happening because run-software-scripts bash script is called
as follows `run-software-scripts preinstall` (or postinstall).
The run-software-scripts looks for executable files within PATCH_SCRIPTDIR/$1
but PATCH_SCRIPTDIR wasn't defined anywhere so it couldn't find the scripts.

This fix declares the PATCH_SCRIPTDIR, so the scripts are found
and executed as expected.

The legacy implementation (sw-patch) has a very similar mechanism and the
PATCH_SCRIPTDIR properly declared
7847f7087e/sw-patch/bin/patch-functions (L15)

Another minor issue is that the run-software-scripts doesn't properly
report when there are no scripts, creating a false impression that
the script was executed.

Test Plan:
SUCCESS: preinstall and postinstall script execution is triggered properly.
SUCCESS: run-software-scripts <folder_name> properly logs when no scripts are present

Closes-bug: 2070391

Change-Id: I91f315d29171a19f9b5c8c09db7c40465dcb49b6
Signed-off-by: caio-volpato <caio.volpato@windriver.com>
This commit is contained in:
caio-volpato
2024-06-25 10:21:19 -03:00
committed by Caio Volpato
parent 7847f7087e
commit f5c0ba9da4
2 changed files with 5 additions and 3 deletions

View File

@@ -15,14 +15,15 @@ fi
declare DIR="${PATCH_SCRIPTDIR}/${1}"
declare SCRIPTS=$(find $DIR -type f -executable | sort)
declare -i NUM_SCRIPTS=$(echo "$SCRIPTS" | wc -l)
if [ $NUM_SCRIPTS -eq 0 ]
if [ ${#SCRIPTS} -eq 0 ]
then
loginfo "No in-service patch scripts found."
loginfo "No in-service patch scripts found at the directory ${DIR}"
exit 0
fi
declare -i NUM_SCRIPTS=$(echo "$SCRIPTS" | wc -l)
loginfo "Running $NUM_SCRIPTS in-service patch scripts"
declare SCRIPTLOG=/var/log/software.log

View File

@@ -12,6 +12,7 @@
# Source platform.conf, for nodetype and subfunctions
. /etc/platform/platform.conf
declare PATCH_SCRIPTDIR=/run/software/software-scripts
declare PRE_INSTALL_SCRIPTDIR=/run/software/software-scripts/preinstall
declare POST_INSTALL_SCRIPTDIR=/run/software/software-scripts/postinstall
declare PATCH_FLAGDIR=/run/software/software-flags