<?xml version='1.0' standalone='yes'?>

<!DOCTYPE PLUGIN [
<!ENTITY name      "ipmi">
<!ENTITY author    "dmacias72">
<!ENTITY version   "2016.03.12">
<!ENTITY launch    "Settings/IPMI">
<!ENTITY gitURL    "https://raw.githubusercontent.com/&author;/unRAID-plugins/master">
<!ENTITY pluginURL "&gitURL;/plugins/&name;.plg">
<!ENTITY pkgURL    "&gitURL;/source/packages">
<!ENTITY plgPATH   "/boot/config/plugins/&name;">
<!ENTITY plgNAME   "&name;-&version;-x86_64-1">
<!ENTITY emhttp    "/usr/local/emhttp/plugins/&name;">
]>

<PLUGIN name="&name;" author="&author;" version="&version;" launch="&launch;" pluginURL="&pluginURL;">

<CHANGES>
###2016.03.12
- converted to using freeipmi instead of ipmitool
- add support for multiple ipmi hosts local, network or both together
- add an extra fan display so you have 2 temp and 2 fan in footer
- fix duplicate reading of sensors
- add highlights and filters to tables
- add settings button to readings page and reading button to settings page
- add polling time to event monitoring
- code optimizations
###2016.02.22
- fix: advanced changed to fixed instead of toggle
###2016.02.15a
- fix: array combine error for sensors with non uniform data
###2016.02.15
- update tablesorter
- add: fan control page and status
- fan control Not functional yet
- add: settings for temps and fan display
- add: temp and fans readings to footer
- move event daemon start and stop functions to rc scripts
- remove daemon start and stop with array
- move daemon start process to plugin install
- move daemon stop process to rc.local_shutdown
###2016.01.17
- add tablesorter as a separate package
- fix values outside of critical showing green
- add icons instead of switches
- minor code changes
###2015.12.30
- remove old plugin directory on install
###2015.12.20
- fixed "Waiting for events" triggering notification on system start
- reorganize events page
- add switchbuttons
- move from UnRAID OS to System Information under Tools menu
- add unRAID version check
###2015.12.14
- make sure and remove old plugin
###2015.12.11
- change repo
- change install and remove method
###2015.11.17
- fix permissions for events
###2015.11.10b
- deleted wrong page file
###2015.11.10
- stop event monitoring on plugin removal
###2015.11.09
- minor bug fixes
###2015.11.08
- add settings page
- add event notifications
- add remote IPMI access
###2015.08.15
- update for unRAID 6.1-rc+ only
###2015.05.07a
- fix bug
###2015.05.07
- initial unRAID 6 release.
</CHANGES>

<!--
The 'tablesorter' package file.
-->
<FILE Name="/boot/config/plugins/tablesorter/tablesorter-2016.02.12-x86_64-1.txz" Run="/sbin/upgradepkg --install-new">
<URL>&gitURL;/archive/tablesorter-2016.02.12-x86_64-1.txz</URL>
<MD5>d25fb1235efaa5f71c790b8d71ed7337</MD5>
</FILE>

<!--
This plugin uses freeipmi to display sensor readings
-->

<FILE Name="&plgPATH;/freeipmi-1.4.11-x86_64-2.txz" Run="upgradepkg --install-new">
<URL>&pkgURL;/freeipmi-1.4.11-x86_64-2.txz</URL>
<MD5>e1060f57c3e5418503aeb6a45615bbe1</MD5>
</FILE>

<FILE Name="&plgPATH;/libgcrypt-1.5.5-x86_64-1_slack14.1.txz" Run="upgradepkg --install-new">
<URL>&pkgURL;/libgcrypt-1.5.5-x86_64-1_slack14.1.txz</URL>
<MD5>636607a48bd342760289913bb7f34b54</MD5>
</FILE>

<FILE Name="&plgPATH;/&name;.cfg">
<INLINE>
<![CDATA[
SERVICE="disable"
IPMIPOLL="disable"
NETWORK="disable"
LOCAL="disable"
IPADDR=""
USER=""
PASSWORD="="
IPMISELD="disable"
DISP_TEMP1="0"
DISP_TEMP2="0"
DISP_FAN1="0"
DISP_FAN2="0"
IPMIFAN="disable"
IPMIBOARD=""
]]>
</INLINE>
</FILE>

<!--
The 'plugin' package file.
-->
<FILE Name="&plgPATH;/&plgNAME;.txz">
<URL>&gitURL;/archive/&plgNAME;.txz</URL>
</FILE>

<!--
The 'plugin' package MD5 hash.
-->
<FILE Name="&plgPATH;/&plgNAME;.md5">
<URL>&gitURL;/archive/&plgNAME;.md5</URL>
</FILE>

<!--
The 'install' script.
-->
<FILE Run="/bin/bash" Method="install">
<INLINE>
#Verify unRAID Version
source /etc/unraid-version
if [[ ${version:0:3} == 6.0 ]]; then
  echo "unRAID version 6.1 or higher is required"
  exit 1
fi

# Verify and install plugin package
sum1=$(/usr/bin/md5sum &plgPATH;/&plgNAME;.txz)
sum2=$(/usr/bin/cat &plgPATH;/&plgNAME;.md5)
if [ "${sum1:0:32}" != "${sum2:0:32}" ]; then
  echo "Wrong 'plugin' package md5 hash."
  rm &plgPATH;/&plgNAME;.txz \
     &plgPATH;/&plgNAME;.md5
  exit 1
else
	upgradepkg --install-new &plgPATH;/&plgNAME;.txz

	# Load impi drivers
	echo "loading ipmi drivers..."
	modprobe ipmi_si
	modprobe ipmi_devintf

	# Start scripts if enabled
	<![CDATA[
	echo "starting ipmiseld..."
	/etc/rc.d/rc.ipmiseld start >/dev/null 2>&1 < /dev/null &
	sleep 1
	echo "starting ipmitail..."
	setsid /etc/rc.d/rc.ipmitail start >/dev/null 2>&1 < /dev/null &
	sleep 1
	]]>

	# Cleaning old source files
	find &plgPATH;/ -type f -iname "&name;*.txz" ! -iname "*&version;*" -delete
	find &plgPATH;/ -type f -iname "&name;*.md5" ! -iname "*&version;*" -delete

echo ""
echo "-----------------------------------------------------------"
echo " &name; has been installed."
echo " This plugin requires Dynamix webGui to operate"
echo " Copyright 2015, &author;"
echo " Version: &version;"
echo "-----------------------------------------------------------"
echo ""

fi
</INLINE>
</FILE>

<!--
The 'remove' script.
-->
<FILE Run="/bin/bash" Method="remove">
<INLINE>
#stop daemon
/etc/rc.d/rc.ipmiseld stop
sleep 1
/etc/rc.d/rc.ipmitail stop
sleep 1

removepkg &plgPATH;/*.txz
rm -rf &emhttp;
rm -f &plgPATH;/*.txz \
  &plgPATH;/*.md5
   

echo "unloading ipmi drivers..."
modprobe -r ipmi_si
modprobe -r ipmi_devintf

echo ""
echo "-----------------------------------------------------------"
echo " &name; has been removed."
echo " Copyright 2016, &author;"
echo " Version: &version;"
echo "-----------------------------------------------------------"
echo ""
</INLINE>
</FILE>

</PLUGIN>
