Export command bug fixes and enhancements

This commit is contained in:
Jose
2020-10-16 14:48:36 -04:00
parent 67a9c65912
commit bc07ff2389

View File

@@ -32,7 +32,7 @@
. /usr/local/etc/bastille/bastille.conf . /usr/local/etc/bastille/bastille.conf
usage() { usage() {
error_exit "Usage: bastille export TARGET [option]" error_exit "Usage: bastille export TARGET [option] | PATH"
} }
# Handle special-case commands first # Handle special-case commands first
@@ -42,11 +42,17 @@ help|-h|--help)
;; ;;
esac esac
if [ $# -gt 1 ] || [ $# -lt 0 ]; then # Check for unsupported actions
if [ "${TARGET}" = "ALL" ]; then
error_exit "Batch export is unsupported."
fi
if [ $# -gt 2 ] || [ $# -lt 0 ]; then
usage usage
fi fi
OPTION="${1}" OPTION="${1}"
EXPATH="${2}"
# Handle some options # Handle some options
if [ -n "${OPTION}" ]; then if [ -n "${OPTION}" ]; then
@@ -55,12 +61,28 @@ if [ -n "${OPTION}" ]; then
# Temporarily disable ZFS so we can create a standard backup archive # Temporarily disable ZFS so we can create a standard backup archive
bastille_zfs_enable="NO" bastille_zfs_enable="NO"
fi fi
elif echo "${OPTION}" | grep -q "\/"; then
if [ -d "${OPTION}" ]; then
EXPATH="${OPTION}"
else
error_exit "Error: Path not found."
fi
else else
error_notify "Invalid option!" error_notify "Invalid option!"
usage usage
fi fi
fi fi
# Export directory check
if [ -n "${EXPATH}" ]; then
if [ -d "${EXPATH}" ]; then
# Set the user defined export directory
bastille_backupsdir="${EXPATH}"
else
error_exit "Error: Path not found."
fi
fi
jail_export() jail_export()
{ {
# Attempt to export the container # Attempt to export the container
@@ -97,13 +119,6 @@ jail_export()
fi fi
} }
# Check for user specified file location
if echo "${TARGET}" | grep -q '\/'; then
GETDIR="${TARGET}"
TARGET=$(echo ${TARGET} | awk -F '\/' '{print $NF}')
bastille_backupsdir=$(echo ${GETDIR} | sed "s/${TARGET}//")
fi
# Check if backups directory/dataset exist # Check if backups directory/dataset exist
if [ ! -d "${bastille_backupsdir}" ]; then if [ ! -d "${bastille_backupsdir}" ]; then
error_exit "Backups directory/dataset does not exist. See 'bastille bootstrap'." error_exit "Backups directory/dataset does not exist. See 'bastille bootstrap'."