#!/usr/bin/env bash


###
#
# Options Section
#
###

set -u
set -o pipefail


###
#
# Function Section
#
###

function load_module () {
  MODULE="${1}"
  if ! /usr/sbin/lsmod | /usr/bin/grep --quiet "${MODULE}"; then
    /usr/sbin/modprobe "${MODULE}"
  fi
}


###
#
# Runtime Environment
#
###

load_module 'i2c_dev'
load_module 'led_ugreen'

I2C_DEV=$(/usr/sbin/i2cdetect -l | /usr/bin/grep 'SMBus I801 adapter' | grep --perl-regexp --only-matching 'i2c-\d+')

if [[ -n "${I2C_DEV}" ]]; then 
  DEV_PATH="/sys/bus/i2c/devices/$I2C_DEV/${I2C_DEV/i2c-/}-003a"
  if [[ -d "${DEV_PATH}" ]]; then
    DEV_NAME=$(/usr/bin/cat "${DEV_PATH}/name")
  fi
  if [[ ! -d "${DEV_PATH}" ]]; then
    /usr/bin/echo 'led-ugreen 0x3a' > "/sys/bus/i2c/devices/${I2C_DEV}/new_device"
  elif [[ "${DEV_NAME}" != 'led-ugreen' ]]; then
    exit 1
  fi
else
  exit 1
fi
