#!/bin/bash -e
######################################################################
# Charles Proxy startup script
#

# Find Charles lib directory
if [ -z "$CHARLES_LIB"]; then
    CHARLES_LIB="$(dirname "$(readlink -f "$0")")"/../lib
    if [ ! -f "$CHARLES_LIB/charles.jar" ]; then
        CHARLES_LIB="/usr/lib/charles-proxy"
    fi
    if [ ! -f "$CHARLES_LIB/charles.jar" ]; then
        CHARLES_LIB="/usr/share/java/charles"
    fi
fi

if [ ! -f "$CHARLES_LIB/charles.jar" ]; then
    echo >&2 "Charles lib directory not found. Expected it in $CHARLES_LIB."
    exit 1
fi

# Check if we have the included JDK
if [ -d "$CHARLES_LIB/jdk" ]; then
    export JAVA_HOME="$CHARLES_LIB/jdk"
fi

# Find Java binary
if [ -z "$JAVA_HOME" ]; then
    hash java 2>^- || { echo >&2 "Charles couldn't start: java not found. Please install java to use Charles."; exit 1; }
    JAVA=java
else
    JAVA="$JAVA_HOME/bin/java"
fi

# HiDPI
if [ -x /usr/bin/gsettings ]; then
    GDK_SCALE=$(/usr/bin/gsettings get org.gnome.desktop.interface scaling-factor | awk '{print $2}')
    export GDK_SCALE
fi

# Launch Charles
$JAVA \
    -Xmx1024M \
    -Dcharles.config="~/.charles.config" \
    -Djava.library.path="$CHARLES_LIB" \
    -jar $CHARLES_LIB/charles.jar \
    $*
