mirror of
https://github.com/okunze/Argon40-ArgonOne-Script.git
synced 2025-06-30 00:37:30 +02:00
Automated Change by GitHub Action
This commit is contained in:
committed by
github-actions[bot]
parent
1a7ab2e005
commit
755a2ca262
305
source/scripts/argonone-upsconfig.sh
Normal file
305
source/scripts/argonone-upsconfig.sh
Normal file
@ -0,0 +1,305 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
if [ -e /boot/firmware/config.txt ] ; then
|
||||
FIRMWARE=/firmware
|
||||
else
|
||||
FIRMWARE=
|
||||
fi
|
||||
CONFIG=/boot${FIRMWARE}/config.txt
|
||||
|
||||
CHECKGPIOMODE="libgpiod" # gpiod or rpigpio
|
||||
|
||||
# Check if Raspbian, Ubuntu, others
|
||||
CHECKPLATFORM="Others"
|
||||
CHECKPLATFORMVERSION=""
|
||||
CHECKPLATFORMVERSIONNUM=""
|
||||
if [ -f "/etc/os-release" ]
|
||||
then
|
||||
source /etc/os-release
|
||||
if [ "$ID" = "raspbian" ]
|
||||
then
|
||||
CHECKPLATFORM="Raspbian"
|
||||
CHECKPLATFORMVERSION=$VERSION_ID
|
||||
elif [ "$ID" = "debian" ]
|
||||
then
|
||||
# For backwards compatibility, continue using raspbian
|
||||
CHECKPLATFORM="Raspbian"
|
||||
CHECKPLATFORMVERSION=$VERSION_ID
|
||||
elif [ "$ID" = "ubuntu" ]
|
||||
then
|
||||
CHECKPLATFORM="Ubuntu"
|
||||
CHECKPLATFORMVERSION=$VERSION_ID
|
||||
fi
|
||||
echo ${CHECKPLATFORMVERSION} | grep -e "\." > /dev/null
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
CHECKPLATFORMVERSIONNUM=`cut -d "." -f2 <<< $CHECKPLATFORMVERSION `
|
||||
CHECKPLATFORMVERSION=`cut -d "." -f1 <<< $CHECKPLATFORMVERSION `
|
||||
fi
|
||||
fi
|
||||
|
||||
pythonbin=/usr/bin/python3
|
||||
|
||||
# Files
|
||||
ARGONDOWNLOADSERVER=https://download.argon40.com
|
||||
INSTALLATIONFOLDER=/etc/argon
|
||||
basename="argononeups"
|
||||
daemonname=$basename"d"
|
||||
|
||||
daemonupsservice=/lib/systemd/system/$daemonname.service
|
||||
upsdaemonscript=$INSTALLATIONFOLDER/$daemonname.py
|
||||
|
||||
rtcdaemonname="argonupsrtcd"
|
||||
|
||||
daemonrtcservice=/lib/systemd/system/$rtcdaemonname.service
|
||||
rtcdaemonscript=$INSTALLATIONFOLDER/$rtcdaemonname.py
|
||||
|
||||
|
||||
requireinstall=0
|
||||
newmode=0
|
||||
echo "-----------------------------------"
|
||||
echo " Argon Industria UPS Configuration"
|
||||
echo "-----------------------------------"
|
||||
if [ ! -f "$upsdaemonscript" ]
|
||||
then
|
||||
echo "Install Argon Industria UPS Tools"
|
||||
echo -n "Press Y to continue:"
|
||||
read -n 1 confirm
|
||||
echo
|
||||
|
||||
if [ "$confirm" = "y" ]
|
||||
then
|
||||
confirm="Y"
|
||||
fi
|
||||
|
||||
if [ "$confirm" != "Y" ]
|
||||
then
|
||||
echo "Cancelled"
|
||||
exit
|
||||
fi
|
||||
|
||||
requireinstall=1
|
||||
newmode=3 # Reinstall
|
||||
|
||||
fi
|
||||
|
||||
|
||||
get_number () {
|
||||
read curnumber
|
||||
if [ -z "$curnumber" ]
|
||||
then
|
||||
echo "-2"
|
||||
return
|
||||
elif [[ $curnumber =~ ^[+-]?[0-9]+$ ]]
|
||||
then
|
||||
if [ $curnumber -lt 0 ]
|
||||
then
|
||||
echo "-1"
|
||||
return
|
||||
elif [ $curnumber -gt 100 ]
|
||||
then
|
||||
echo "-1"
|
||||
return
|
||||
fi
|
||||
echo $curnumber
|
||||
return
|
||||
fi
|
||||
echo "-1"
|
||||
return
|
||||
}
|
||||
|
||||
UPSCMDFILE="/dev/shm/upscmd.txt"
|
||||
UPSSTATUSFILE="/dev/shm/upslog.txt"
|
||||
rtcconfigscript=$INSTALLATIONFOLDER/argonups-rtcconfig.sh
|
||||
|
||||
if [ -f "$UPSSTATUSFILE" ]
|
||||
then
|
||||
# cat $UPSSTATUSFILE
|
||||
sudo $pythonbin $rtcdaemonscript GETBATTERY
|
||||
fi
|
||||
|
||||
|
||||
loopflag=1
|
||||
while [ $loopflag -eq 1 ]
|
||||
do
|
||||
if [ $requireinstall -eq 0 ]
|
||||
then
|
||||
echo
|
||||
echo "Select option:"
|
||||
echo " 1. UPS Battery Status"
|
||||
echo " 2. Configure RTC and/or Schedule"
|
||||
echo " 3. Reinstall UPS Tools"
|
||||
echo " 4. Uninstall UPS Tools"
|
||||
echo ""
|
||||
echo " 0. Back"
|
||||
|
||||
echo -n "Enter Number (0-4):"
|
||||
|
||||
newmode=$( get_number )
|
||||
fi
|
||||
if [[ $newmode -ge 0 && $newmode -le 4 ]]
|
||||
then
|
||||
if [ $newmode -eq 1 ]
|
||||
then
|
||||
sudo $pythonbin $rtcdaemonscript GETBATTERY
|
||||
#if [ -f "$UPSSTATUSFILE" ]
|
||||
#then
|
||||
# cat $UPSSTATUSFILE
|
||||
#else
|
||||
# echo "Unable to retrieve status"
|
||||
#fi
|
||||
elif [ $newmode -eq 2 ]
|
||||
then
|
||||
$rtcconfigscript "argonupsrtc"
|
||||
#TMPTIMESTR=`date +"%Y%d%m%H%M%S"`
|
||||
#TMPDATASTR=`date +"%Y %m %d %H %M %S"`
|
||||
|
||||
#echo "$TMPTIMESTR" > $UPSCMDFILE
|
||||
#echo "3 $TMPDATASTR" >> $UPSCMDFILE
|
||||
elif [ $newmode -eq 3 ]
|
||||
then
|
||||
# Start installation
|
||||
if [ ! -d "$INSTALLATIONFOLDER/ups" ]
|
||||
then
|
||||
sudo mkdir $INSTALLATIONFOLDER/ups
|
||||
fi
|
||||
|
||||
|
||||
rtcconfigfile=/etc/argonupsrtc.conf
|
||||
# Generate default RTC config file if non-existent
|
||||
if [ ! -f $rtcconfigfile ]; then
|
||||
sudo touch $rtcconfigfile
|
||||
sudo chmod 666 $rtcconfigfile
|
||||
|
||||
echo '#' >> $rtcconfigfile
|
||||
echo '# Argon RTC Configuration' >> $rtcconfigfile
|
||||
echo '#' >> $rtcconfigfile
|
||||
fi
|
||||
|
||||
for iconfile in battery_0 battery_2 battery_4 battery_charging battery_unknown battery_1 battery_3 battery_alert battery_plug
|
||||
do
|
||||
sudo wget $ARGONDOWNLOADSERVER/ups/${iconfile}.png -O $INSTALLATIONFOLDER/ups/${iconfile}.png --quiet
|
||||
done
|
||||
|
||||
sudo wget $ARGONDOWNLOADSERVER/ups/upsimg.tar.gz -O $INSTALLATIONFOLDER/ups/upsimg.tar.gz --quiet
|
||||
sudo tar xfz $INSTALLATIONFOLDER/ups/upsimg.tar.gz -C $INSTALLATIONFOLDER/ups/
|
||||
sudo rm -Rf $INSTALLATIONFOLDER/ups/upsimg.tar.gz
|
||||
|
||||
# Desktop Icon
|
||||
destfoldername=$USERNAME
|
||||
if [ -z "$destfoldername" ]
|
||||
then
|
||||
destfoldername=$USER
|
||||
fi
|
||||
if [ -z "$destfoldername" ]
|
||||
then
|
||||
destfoldername="pi"
|
||||
fi
|
||||
|
||||
shortcutfile="/home/$destfoldername/Desktop/argonone-ups.desktop"
|
||||
if [ -d "/home/$destfoldername/Desktop" ]
|
||||
then
|
||||
terminalcmd="lxterminal --working-directory=/home/$destfoldername/ -t"
|
||||
if [ -f "/home/$destfoldername/.twisteros.twid" ]
|
||||
then
|
||||
terminalcmd="xfce4-terminal --default-working-directory=/home/$destfoldername/ -T"
|
||||
fi
|
||||
|
||||
echo "[Desktop Entry]" > $shortcutfile
|
||||
echo "Name=Argon UPS" >> $shortcutfile
|
||||
echo "Comment=Argon UPS" >> $shortcutfile
|
||||
echo "Icon=/etc/argon/ups/loading_0.png" >> $shortcutfile
|
||||
echo 'Exec='$terminalcmd' "Argon UPS" -e "'$rtcconfigscript' argonupsrtc"' >> $shortcutfile
|
||||
echo "Type=Application" >> $shortcutfile
|
||||
echo "Encoding=UTF-8" >> $shortcutfile
|
||||
echo "Terminal=false" >> $shortcutfile
|
||||
echo "Categories=None;" >> $shortcutfile
|
||||
chmod 755 $shortcutfile
|
||||
fi
|
||||
|
||||
# Stopped using default battery indicator
|
||||
## Build Kernel Module
|
||||
#sourcecodefolder=$INSTALLATIONFOLDER/tmp
|
||||
#buildfolder=$sourcecodefolder/build
|
||||
#if [ -d $sourcecodefolder ]
|
||||
#then
|
||||
# sudo rm -rf $sourcecodefolder
|
||||
#fi
|
||||
#if [ "$CHECKPLATFORM" = "Ubuntu" ]
|
||||
#then
|
||||
# sudo apt-get install build-essential
|
||||
#fi
|
||||
#sudo mkdir -p $buildfolder
|
||||
#sudo chmod -R 755 $buildfolder
|
||||
|
||||
#FILELIST="COPYING Makefile argonbatteryicon.c"
|
||||
#for fname in $FILELIST
|
||||
#do
|
||||
# sudo wget $ARGONDOWNLOADSERVER/modules/argonbatteryicon/$fname -O $buildfolder/#$fname --quiet
|
||||
#done
|
||||
|
||||
## Start Build
|
||||
#cd $buildfolder/
|
||||
#sudo make
|
||||
#sudo cp "$buildfolder/argonbatteryicon.ko" "$INSTALLATIONFOLDER/ups/"
|
||||
|
||||
## Cleanup
|
||||
#cd $INSTALLATIONFOLDER/
|
||||
#sudo rm -Rf "$sourcecodefolder"
|
||||
|
||||
sudo wget $ARGONDOWNLOADSERVER/scripts/argononeupsd.py -O "$upsdaemonscript" --quiet
|
||||
sudo wget $ARGONDOWNLOADSERVER/scripts/argononeupsd.service -O "$daemonupsservice" --quiet
|
||||
sudo chmod 666 $daemonupsservice
|
||||
#echo "User=$destfoldername" >> "$daemonupsservice"
|
||||
#echo "Group=$destfoldername" >> "$daemonupsservice"
|
||||
|
||||
sudo chmod 644 $daemonupsservice
|
||||
|
||||
sudo wget $ARGONDOWNLOADSERVER/scripts/argoneon-rtcconfig.sh -O $rtcconfigscript --quiet
|
||||
sudo chmod 755 $rtcconfigscript
|
||||
|
||||
sudo wget $ARGONDOWNLOADSERVER/scripts/argonrtc.py -O $INSTALLATIONFOLDER/argonrtc.py --quiet
|
||||
sudo wget $ARGONDOWNLOADSERVER/scripts/argonupsrtcd.py -O "$rtcdaemonscript" --quiet
|
||||
sudo wget $ARGONDOWNLOADSERVER/scripts/argonupsrtcd.service -O "$daemonrtcservice" --quiet
|
||||
sudo chmod 644 $daemonrtcservice
|
||||
|
||||
if [ $requireinstall -eq 1 ]
|
||||
then
|
||||
requireinstall=0
|
||||
sudo systemctl enable "$daemonname.service"
|
||||
sudo systemctl start "$daemonname.service"
|
||||
|
||||
sudo systemctl enable "$rtcdaemonname.service"
|
||||
sudo systemctl start "$rtcdaemonname.service"
|
||||
else
|
||||
sudo systemctl restart "$daemonname.service"
|
||||
sudo systemctl restart "$rtcdaemonname.service"
|
||||
loopflag=0
|
||||
fi
|
||||
# Serial I/O is here
|
||||
sudo systemctl restart argononed.service
|
||||
elif [ $newmode -eq 4 ]
|
||||
then
|
||||
sudo systemctl stop "$daemonname.service"
|
||||
sudo systemctl disable "$daemonname.service"
|
||||
sudo rm $daemonupsservice
|
||||
sudo rm $upsdaemonscript
|
||||
|
||||
sudo systemctl stop "$rtcdaemonname.service"
|
||||
sudo systemctl disable "$rtcdaemonname.service"
|
||||
sudo rm $daemonrtcservice
|
||||
sudo rm $rtcdaemonscript
|
||||
|
||||
sudo rm -R -f $INSTALLATIONFOLDER/ups
|
||||
|
||||
echo "Uninstall Completed"
|
||||
loopflag=0
|
||||
else
|
||||
echo "Cancelled"
|
||||
loopflag=0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
Reference in New Issue
Block a user