#!/bin/bash

## #ddev-generated: If you want to edit and own this file, remove this line.
## Description: Launch a browser with the current site
## Usage: launch [path] [-m|--mailpit]
## Example: "ddev launch" or "ddev launch /admin/reports/status/php" or "ddev launch phpinfo.php", for Mailpit "ddev launch -m"
## Flags: [{"Name":"mailpit","Shorthand":"m","Usage":"ddev launch -m launches the mailpit UI"}]

if [ "${DDEV_PROJECT_STATUS}" != "running" ]; then
  echo "Project ${DDEV_PROJECT} is not running, starting it"
  ddev start
fi
FULLURL=${DDEV_PRIMARY_URL}
HTTPS=""
if [ ${DDEV_PRIMARY_URL%://*} = "https" ]; then HTTPS=true; fi

while :; do
     case ${1:-} in
         -p|--phpmyadmin)
            echo "phpMyAdmin is no longer built into DDEV, please 'ddev get ddev/ddev-phpmyadmin' and use 'ddev phpmyadmin' to launch phpMyAdmin" && exit 2
            ;;
         -m|--mailpit|--mailhog)
            if [[ ! -z "${GITPOD_INSTANCE_ID}" ]] || [[ "${CODESPACES}" == "true" ]]; then
                FULLURL="${FULLURL/-${DDEV_HOST_WEBSERVER_PORT}/-${DDEV_HOST_MAILPIT_PORT}}"
            else
                if [ "${HTTPS}" = "" ]; then
                    FULLURL="${FULLURL%:[0-9]*}:${DDEV_MAILPIT_PORT}"
                else
                    FULLURL="${FULLURL%:[0-9]*}:${DDEV_MAILPIT_HTTPS_PORT}"
                fi
            fi
             ;;

         --)              # End of all options.
             shift
             break
             ;;
         -?*)
             printf 'WARN: Unknown option (ignored): %s\n' "$1" >&2
             ;;
         *)               # Default case: No more options, so break out of the loop.
             break
     esac

     shift
 done

if [ -n "${1:-}" ] ; then
  if [[ ${1::1} != "/" ]] ; then
    FULLURL="${FULLURL}/";
  fi

  FULLURL="${FULLURL}${1}";
fi

if [ ! -z ${DDEV_DEBUG:-} ]; then
    printf "FULLURL $FULLURL\n" && exit 0
fi

case $OSTYPE in
  linux-gnu)
    if [[ ! -z "${GITPOD_INSTANCE_ID}" ]]; then
        gp preview ${FULLURL}
    else
        xdg-open ${FULLURL}
    fi
    ;;
  "darwin"*)
    open ${FULLURL}
    ;;
  "win*"* | "msys"*)
    start ${FULLURL}
    ;;
esac

