add datapack functionality

This commit is contained in:
LinuxSquare 2025-04-10 21:54:17 +02:00
parent 4e72971d7f
commit 5a517d12ad
3 changed files with 43 additions and 3 deletions

View file

@ -26,15 +26,19 @@ function backup_create() {
}
function backup_destroy() {
checkBackupDir "${1}"
local backupdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/backup"
if [[ ! -f "${backupdir}/${2}.tar.gz" ]]; then
log e "Backup ${2%} does not exist! Check again using '$(basename 0) backup list'"
log e "Backup '${2}' does not exist! Check again using '$(basename 0) backup list'"
exit 1
fi
rm "${backupdir}/${2}.tar.gz"
}
function backup_list() {
checkBackupDir "${1}"
local backupdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/backup"
local found_backups=($(find "$backupdir" -type f -print))

View file

@ -4,20 +4,50 @@ function datapack_help() {
usage_general
cat<<EOF
commands:
fetch [download-url] [servername]
delete [datapack-name] [servername]
fetch [servername] [download-url]
delete [servername] [datapack-name]
list [servername]
EOF
}
function datapack_fetch() {
checkDatapackDir "${1}"
local datapack_dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/world/datapacks"
local datapack_name="$(echo ${2} | awk -F/ '{print $NF}')"
if [[ -f "${datapack_dir}/${datapack_name}" ]]; then
log e "Datapack '${datapack_name}' does already exist!"
exit 1
fi
curl -L "${2}" -o "${datapack_dir}/${datapack_name}"
}
function datapack_delete() {
checkDatapackDir "${1}"
local datapack_dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/world/datapacks"
if [[ ! -f "${datapack_dir}/${2}" ]]; then
log e "Datapack '${2}' does not exist! Check again using '$(basename 0) datapack list'"
exit 1
fi
rm "${datapack_dir}/${2}"
}
function datapack_list() {
checkDatapackDir "${1}"
local datapack_dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/world/datapacks"
local found_datapacks=($(find "$datapack_dir" -type f -print))
if [[ "${#found_datapacks[@]}" -eq 0 ]]; then
log i "No datapacks found for '$1'"
exit 0
fi
log i "Found ${#found_datapacks[@]} datapacks:"
for datapack in "${found_datapacks[@]}"; do
echo "- $(basename ${datapack})"
done
}

View file

@ -115,3 +115,9 @@ function checkBackupDir() {
mkdir -p "$(getValueByKey 'PODMAN_DIRECTORY')/${1}/backup"
fi
}
function checkDatapackDir() {
if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/world/datapacks" ]]; then
mkdir -p "$(getValueByKey 'PODMAN_DIRECTORY')/${1}/data/world/datapacks"
fi
}