# store backup archives on an SMB server
# proposed by Richard Weinberger

requireCommand smbclient || cleanup 1

# verify configuration data
if [ -z "$STORAGE_SMB_SERVER" ] || \
   [ -z "$STORAGE_SMB_SHARE" ] || \
   [ -z "$STORAGE_SMB_USER" ] || \
   [ -z "$STORAGE_SMB_PASSWORD" ]; then
    cleanup 1 "If SMB is used, STORAGE_SMB_SERVER, STORAGE_SMB_SHARE, STORAGE_SMB_USER and STORAGE_SMB_PASSWORD are mandatory"
fi

CUSTOM_STORAGE_METHOD() {
    local FILE="$FILENAME"
    local SMBCMD="cd $STORAGE_SMB_DIR ; put - $FILE"
    local SMBDOM=""

    if [ ! -z "$STORAGE_SMB_DOMAIN" ]; then
        SMBDOM="-W $STORAGE_SMB_DOMAIN"
    fi

    debug "Uploading via SMB to $STORAGE_SMB_SERVER..."
    smbclient "\\\\$STORAGE_SMB_SERVER\\$STORAGE_SMB_SHARE" \
        "$STORAGE_SMB_PASSWORD" \
        -c "$SMBCMD" \
        -u "$STORAGE_SMB_USER" \
        "$SMBDOM"
}
