Samba Backup
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#!/command/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Create the backup name by replacing all name patterns.
|
||||
#
|
||||
# Returns the final name on stdout
|
||||
# ------------------------------------------------------------------------------
|
||||
function generate-backup-name {
|
||||
local name
|
||||
local theversion
|
||||
local thetype
|
||||
local thedate
|
||||
|
||||
if [ -n "$BACKUP_NAME" ]; then
|
||||
# get all values
|
||||
theversion=$(ha core info --raw-json | jq -r .data.version)
|
||||
[[ -n "$EXCLUDE_ADDONS" || -n "$EXCLUDE_FOLDERS" ]] && thetype="Partial" || thetype="Full"
|
||||
thedate=$(date +'%Y-%m-%d %H:%M')
|
||||
|
||||
# replace the string patterns with the real values
|
||||
name="$BACKUP_NAME"
|
||||
name=${name/\{version\}/$theversion}
|
||||
name=${name/\{type\}/$thetype}
|
||||
name=${name/\{date\}/$thedate}
|
||||
else
|
||||
name="Samba Backup $(date +'%Y-%m-%d %H:%M')"
|
||||
fi
|
||||
|
||||
echo "$name"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Create a valid filename by replacing all forbidden characters.
|
||||
#
|
||||
# Arguments
|
||||
# $1 The original name
|
||||
#
|
||||
# Returns the final name on stdout
|
||||
# ------------------------------------------------------------------------------
|
||||
function generate-filename {
|
||||
local input="${1}"
|
||||
local prefix
|
||||
|
||||
declare -a forbidden=('\/' '\\' '\<' '\>' '\:' '\"' '\|' '\?' '\*' '\.' '\..' '\ ' '\-')
|
||||
for fc in "${forbidden[@]}"; do
|
||||
input=${input//$fc/_}
|
||||
done
|
||||
|
||||
prefix=${input:0:13}
|
||||
[ "$prefix" = "Samba_Backup_" ] && echo "${input}" || echo "Samba_Backup_${input}"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Run a command and log its output (debug or warning).
|
||||
#
|
||||
# Arguments
|
||||
# $1 The command to run
|
||||
#
|
||||
# Returns 1 in case the command failed
|
||||
# ------------------------------------------------------------------------------
|
||||
function run-and-log {
|
||||
local cmd="$1"
|
||||
local result
|
||||
|
||||
if result=$(eval "$cmd"); then
|
||||
[ -n "$result" ] && bashio::log.debug "$result"
|
||||
else
|
||||
bashio::log.warning "$result"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Checks if input is an extended trigger.
|
||||
#
|
||||
# Arguments
|
||||
# $1 The input to check
|
||||
#
|
||||
# Returns 0 (true) or 1 (false)
|
||||
# ------------------------------------------------------------------------------
|
||||
function is-extended-trigger {
|
||||
local input=${1}
|
||||
local cmd
|
||||
|
||||
if cmd=$(echo "$input" | jq -r '.command' 2>/dev/null); then
|
||||
[ "$cmd" = "trigger" ] && return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
Reference in New Issue
Block a user