#!/usr/bin/env bashio

####################
# SET UID GID v1.0 #
####################
bashio::log.info 'PUID GUID set to root'
PUID=0
PGID=0

#########################
# MOUNT SMB SHARES v1.1 #
#########################
if bashio::config.has_value 'networkdisks'; then

  # Mount CIFS Share if configured and if Protection Mode is active
  bashio::log.info 'Mounting smb share(s)...'

  # Define variables
  MOREDISKS=$(bashio::config 'networkdisks')
  CIFS_USERNAME=$(bashio::config 'cifsusername')
  CIFS_PASSWORD=$(bashio::config 'cifspassword')

  # Allow SMB1
  if bashio::config.true 'smbv1'; then
    SMBVERS=",vers=1.0"
  else
    SMBVERS=",vers=2.1"
  fi

  # Mounting disks
  for disk in ${MOREDISKS//,/ }; do          # Separate comma separated values
    disk=$(echo $disk | sed "s,/$,,") # Remove / at end of name
    diskname=${disk//\\//} #replace \ with /
    diskname=${diskname##*/} # Get only last part of the name
    rm -r /mnt/$diskname 2>/dev/null || true # Create dir
    mkdir -p /mnt/$diskname                  # Create dir
    chown -R root:root /mnt/$diskname        # Permissions
    mount -t cifs -o username=$CIFS_USERNAME,password=${CIFS_PASSWORD}${SMBVERS} $disk /mnt/$diskname &&
      bashio::log.info "... $disk successfully mounted to /mnt/$diskname" ||
      bashio::log.error "Unable to mount $disk to /mnt/$diskname with username $CIFS_USERNAME, $CIFS_PASSWORD"
  done || true
fi

###################
# SSL CONFIG v1.0 #
###################

bashio::config.require.ssl
if bashio::config.true 'ssl'; then
  bashio::log.info "ssl enabled. If webui don't work, disable ssl or check your certificate paths"
  #set variables
  CERTFILE="-t /ssl/$(bashio::config 'certfile')"
  KEYFILE="-k /ssl/$(bashio::config 'keyfile')"
else
  CERTFILE=""
  KEYFILE=""
fi

######################
# LAUNCH FILEBROWSER #
######################
bashio::log.info "Default username/password : admin/admin"
bashio::log.info "Please wait 1 or 2 minutes to allow the server to load"

/./filebrowser $CERTFILE $KEYFILE --root=/ --address=0.0.0.0 --database=/config/filebrowser/filebrowser.db
