Add ability to install 3rd party plugins

Depending on the situation, a user might have third party plugins that
are needed for their XO setup. We're using a mysql auth plugin, but
github has a handful of other third party plugins.

Added: config setting ADDITIONAL_PLUGINS to specify git repo URLs.
Added: InstallAdditionalXOPlugins function to download/update these
       repos and add them to the XO source tree before building.
This commit is contained in:
Andreas Thienemann
2021-06-28 22:28:41 +02:00
parent 780d8bd280
commit c7a90a2de0
2 changed files with 46 additions and 0 deletions

View File

@@ -368,6 +368,46 @@ function UpdateNodeYarn {
fi
}
function InstallAdditionalXOPlugins {
set -euo pipefail
trap ErrorHandling ERR INT
if [[ -z "$ADDITIONAL_PLUGINS" ]] || [[ "$ADDITIONAL_PLUGINS" == "none" ]]; then
echo
printinfo "No additional plugins to install"
return 0
fi
echo
printprog "Installing additional plugins"
local ADDITIONAL_PLUGINSARRAY=($(echo "$ADDITIONAL_PLUGINS" | tr ',' ' '))
for x in "${ADDITIONAL_PLUGINSARRAY[@]}"; do
local PLUGIN_NAME=$(basename "$x" | rev | cut -c 5- | rev)
local PLUGIN_SRC_DIR=$(realpath -m "$XO_SRC_DIR/../$PLUGIN_NAME")
if [[ ! -d "$PLUGIN_SRC_DIR" ]]; then
cmdlog "mkdir -p \"$PLUGIN_SRC_DIR\""
mkdir -p "$PLUGIN_SRC_DIR"
cmdlog "git clone \"${x}\" \"$PLUGIN_SRC_DIR\""
git clone "${x}" "$PLUGIN_SRC_DIR" >>$LOGFILE 2>&1
else
cmdlog "cd \"$PLUGIN_SRC_DIR\""
cd "$PLUGIN_SRC_DIR" >>$LOGFILE 2>&1
cmdlog "git pull"
git pull >>$LOGFILE 2>&1
cd $(dirname $0) >>$LOGFILE 2>&1
cmdlog "cd $(dirname $0)"
fi
cmdlog "cp -r $PLUGIN_SRC_DIR $INSTALLDIR/xo-builds/xen-orchestra-$TIME/packages/"
cp -r "$PLUGIN_SRC_DIR" "$INSTALLDIR/xo-builds/xen-orchestra-$TIME/packages/" >>$LOGFILE 2>&1
done
printok "Installing additional plugins"
}
function InstallXOPlugins {
set -euo pipefail
@@ -572,6 +612,9 @@ function InstallXO {
TASK="Installation"
fi
# Install additional plugins
InstallAdditionalXOPlugins
echo
echo
printinfo "xo-server and xo-web build takes quite a while. Grab a cup of coffee and lay back"