summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xremote/modules/vmplayer/data/addon-init5
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/bin/setup_stage324
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons19
3 files changed, 23 insertions, 5 deletions
diff --git a/remote/modules/vmplayer/data/addon-init b/remote/modules/vmplayer/data/addon-init
new file mode 100755
index 00000000..01acb3b4
--- /dev/null
+++ b/remote/modules/vmplayer/data/addon-init
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+systemctl daemon-reload
+systemctl start vmware
+
diff --git a/remote/rootfs/rootfs-stage31/data/bin/setup_stage32 b/remote/rootfs/rootfs-stage31/data/bin/setup_stage32
index 151617bc..bc00b830 100755
--- a/remote/rootfs/rootfs-stage31/data/bin/setup_stage32
+++ b/remote/rootfs/rootfs-stage31/data/bin/setup_stage32
@@ -45,3 +45,7 @@ mount -n -t aufs -o "br:${FUTURE_ROOT}:${STAGE32_MOUNT_POINT}=ro" none /mnt || d
mkdir -p /mnt/opt/openslx/uniontmp /mnt/tmp
mount -n --move "$FUTURE_ROOT" /mnt/opt/openslx/uniontmp || drop_shell "Problem moving uniontmp."
FUTURE_ROOT="/mnt"
+
+# "Delete" addon hook-script in aufs view
+touch "/mnt/opt/openslx/uniontmp/.wh.addon-init"
+
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons
index 70a09924..a5dc9965 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons
@@ -25,20 +25,29 @@ fi
SLX_BASE_PATH=$(read_from_cmdline "slxbase")
SLX_BASE_MNT="/opt/openslx/mnt"
-SYS_TMP="/tmp"
+SYS_TMP="/tmp/addons"
+mkdir -p "$SYS_TMP" || { echo "Failed to create $SYS_TMP"; exit 1; }
for ADDON in ${SLX_ADDONS}; do
# download the addon from the given URL
- ADDON_TARGET_PATH="${SYS_TMP}/$(basename $(echo ${ADDON})).sqfs"
+ ADDON_TARGET_PATH="${SYS_TMP}/$(basename "$ADDON").sqfs"
download "${SLX_BASE_PATH}/${ADDON}.sqfs" "${ADDON_TARGET_PATH}"
# now mount it to $SLX_MNT/<addon-name>
- ADDON_MOUNT_POINT="${SLX_BASE_MNT}/$(basename $(echo ${ADDON}) | awk -F "." '{print $1}')"
+ ADDON_MOUNT_POINT="${SLX_BASE_MNT}/$(basename "$ADDON")"
mkdir -p "$ADDON_MOUNT_POINT"
echo "Mounting ${ADDON_TARGET_PATH} to ${ADDON_MOUNT_POINT}"
- mount -t squashfs "$ADDON_TARGET_PATH" ${ADDON_MOUNT_POINT} || { echo "Failed to mount." && exit 1; }
+ mount -t squashfs "$ADDON_TARGET_PATH" "$ADDON_MOUNT_POINT" || { echo "Failed to mount." && exit 1; }
# now append it to /
echo "Appending ${ADDON_MOUNT_POINT} to /"
- mount -o remount,append:${ADDON_MOUNT_POINT}=ro / || { echo "Fail." && exit 1; }
+ mount -o "remount,append:${ADDON_MOUNT_POINT}=ro" / || { echo "Fail." && exit 1; }
+
+ # Run post-hook if available
+ if [ -x "$ADDON_MOUNT_POINT/addon-init" ]; then
+ echo "Running addon initialization script..."
+ "$ADDON_MOUNT_POINT/addon-init" || echo "Warning: Could not execute addon-init of $ADDON"
+ fi
done
+exit 0
+