#!/usr/bin/env bash

if [[ `id -u` -ne 0 ]]; then
    for group in dialout lock; do
        if ! groups $USER | grep -q " : .*\b$group\b"; then
            missing_groups="$missing_groups\n$group"
        fi
    done
    if [[ -n $missing_groups ]] && zenity --title=Arduino --window-icon=/usr/share/icons/hicolor/16x16/apps/arduino.png --question --text "You need to be a member of the following groups to upload code to an Arduino microcontroller over the USB or serial ports:\n$missing_groups" --ok-label='Add' --cancel-label='Ignore'; then
        pkexec /usr/libexec/arduino-add-groups \
        && zenity --title=Arduino --window-icon=/usr/share/icons/hicolor/16x16/apps/arduino.png --info --text "You must log out and log in again before any changes will take effect."
    fi
fi

. /usr/share/java-utils/java-functions

MAIN_CLASS=processing.app.Base

set_classpath apache-commons-codec apache-commons-compress apache-commons-exec \
apache-commons-lang3 apache-commons-logging apache-commons-net bcpg bcprov \
jackson-core jackson-databind jackson-module-mrbean jmdns jsch jsemver jssc \
guava objectweb-asm jackson-annotations \
jakarta-commons-httpclient rsyntaxtextarea

for lib in /usr/share/arduino/*.jar; do
    CLASSPATH="$CLASSPATH:$lib"
done

set_flags -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel $SPLASH

if [[ "$@" != *"--upload"* && "$@" != *"--verify"* && "$@" != *"--get-pref"* && "$@" != *"--install-board"* && "$@" != *"--install-library"* ]] ; then
  SPLASH="-splash:/usr/share/arduino/lib/splash.png"
fi

cd /usr/share/arduino

run "$@"
