#!/bin/bash --posix

# Based on findScalaHome() from scalac script
findKotlinHome() {
    local source="${BASH_SOURCE[0]}"
    while [ -h "$source" ] ; do
        local linked="$(readlink "$source")"
        local dir="$(cd -P $(dirname "$source") && cd -P $(dirname "$linked") && pwd)"
        source="$dir/$(basename "$linked")"
    done
    (cd -P "$(dirname "$source")/.." && pwd)
}

KOTLIN_HOME="$(findKotlinHome)"

FIRST=$1
DEX=${FIRST%%.kt}.dex
JAR=${FIRST%%.kt}.jar

CP=""
SEP=""
CPFLAG=""
for f in $KOTLIN_HOME/ext/*.jar; do
  CP="$CP$SEP$f"
  SEP=":"
  CPFLAG="-cp"
done

kotlinc $CPFLAG $CP -d $JAR "$@" && \
  java -jar $KOTLIN_HOME/dx/dx.jar --dex --output=$DEX $JAR

