add plugin functionality

This commit is contained in:
LinuxSquare 2025-04-10 22:37:55 +02:00
parent 12833d4490
commit fd2d79d0ac
2 changed files with 42 additions and 2 deletions

View file

@ -4,20 +4,50 @@ function plugin_help() {
usage_general
cat<<EOF
commands:
fetch [download-url] [servername]
delete [plugin-name] [servername]
fetch [servername] [download-url]
delete [servername] [plugin-name]
list [servername]
EOF
}
function plugin_fetch() {
checkPluginDir "${1}"
local plugin_dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/plugins"
local plugin_name="$(echo ${2} | awk -F/ '{print $NF}')"
if [[ -f "${plugin_dir}/${plugin_name}" ]]; then
log e "Plugin '${plugin_name}' does already exist!"
exit 1
fi
curl -L "${2}" -o "${plugin_dir}/${plugin_name}"
}
function plugin_delete() {
checkPluginDir "${1}"
local plugin_dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/plugins"
if [[ ! -f "${plugin_dir}/${2}" ]]; then
log e "Plugin '${2}' does not exist! Check again using '$(basename 0) plugin list'"
exit 1
fi
rm "${plugin_dir}/${2}"
}
function plugin_list {
checkPluginDir "${1}"
local plugin_dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/plugins"
local found_plugins=($(find "$plugin_dir" -iname "*.jar" -maxdepth 1 -type f -print))
if [[ "${#found_plugins[@]}" -eq 0 ]]; then
log i "No plugins found for '$1'"
exit 0
fi
log i "Found ${#found_plugins[@]} plugins:"
for plugin in "${found_plugins[@]}"; do
echo "- $(basename ${plugin})"
done
}

View file

@ -129,3 +129,13 @@ function checkDatapackDir() {
mkdir -p "$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/world/datapacks"
fi
}
function checkPluginDir() {
if [[ -z "$1" ]]; then
log e "Parameters can't be empty!"
exit 1
fi
if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/plugins" ]]; then
mkdir -p "$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/plugins"
fi
}