#!/usr/bin/env bash
# shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version           :  202407071518-git
# @@Author           :  Jason Hempstead
# @@Contact          :  git-admin@casjaysdev.pro
# @@License          :  LICENSE.md
# @@ReadME           :  template --help
# @@Copyright        :  Copyright: (c) 2024 Jason Hempstead, Casjays Developments
# @@Created          :  Sunday, Jul 07, 2024 15:18 EDT
# @@File             :  template
# @@Description      :  newScript
# @@Changelog        :  newScript
# @@TODO             :  Refactor code
# @@Other            :
# @@Resource         :
# @@Terminal App     :  no
# @@sudo/root        :  no
# @@Template         :  bash/system
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# shell check options
# shellcheck disable=SC2317
# shellcheck disable=SC2120
# shellcheck disable=SC2155
# shellcheck disable=SC2199
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
APPNAME="$(basename "$0")"
VERSION="202407071518-git"
HOME="${USER_HOME:-$HOME}"
USER="${SUDO_USER:-$USER}"
RUN_USER="${SUDO_USER:-$USER}"
SRC_DIR="${BASH_SOURCE%/*}"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set bash options
set -o pipefail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Create functions
__docker_run() {
  docker run \
    --init \
    --sig-proxy=false \
    --name nextcloud \
    --restart always \
    --publish 80:8080 \
    --env TALK_PORT=3478 \
    --env HOSTNAME=nextcloud \
    --env NEXTCLOUD_ADDITIONAL_APKS="imagemagick " \
    --env NEXTCLOUD_DATADIR="/data/nextcloud" \
    --volume /data:/data \
    --volume /config/nextcloud:/mnt/docker-aio-config \
    --volume /var/run/docker.sock:/var/run/docker.sock:ro \
    nextcloud/all-in-one:latest
  return $?
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
__docker_cron() {
  local retVal=0
  [ -f "/run/nextcloud-cron.pid" ] && return || touch /run/nextcloud-cron.pid
  docker rm -f nextcloud && docker pull nextcloud/all-in-one:latest && __docker_run
  retval=$?
  rm -Rf /run/nextcloud-cron.pid
  return $retval
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Create directories
[ -d "/data/nextcloud" ] || mkdir -p /data/nextcloud
[ -d "/config/nextcloud" ] || mkdir -p /config/nextcloud
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
case "$1" in
cron)
  __docker_cron
  exit $?
  ;;
*)
  (sleep 86400 && __docker_cron) &
  __docker_run &
  dockerPid=$!
  ;;
esac
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
wait -f $dockerPid
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
