Files
quectel-rgmii-toolkit/RM520_rgmii_toolkit.sh
iamromulan 46eec55a19 Update RM520_rgmii_toolkit.sh
add read write to each function
2023-11-14 22:13:34 -05:00

155 lines
4.8 KiB
Bash

#!/bin/sh
# Define paths
AT_TELNET_DIR="/usrdata/at-telnet"
SIMPLE_ADMIN_DIR="/usrdata/simpleadmin"
TMP_DIR="/tmp"
GITHUB_URL="https://github.com/iamromulan/quectel-rgmii-simpleadmin-at-telnet-daemon/archive/refs/heads/main.zip"
# Check if AT Telnet Daemon is installed
is_at_telnet_installed() {
[ -d "$AT_TELNET_DIR" ] && return 0 || return 1
}
# Check if Simple Admin is installed
is_simple_admin_installed() {
[ -d "$SIMPLE_ADMIN_DIR" ] && return 0 || return 1
}
# Function to remount file system as read-write
remount_rw() {
mount -o remount,rw /
}
# Function to remount file system as read-only
remount_ro() {
mount -o remount,ro /
}
# Function to install/update AT Telnet Daemon
install_update_at_telnet() {
remount_rw
cd $TMP_DIR
wget $GITHUB_URL -O main.zip
unzip -o main.zip
cp -Rf quectel-rgmii-simpleadmin-at-telnet-daemon-main/attelnetdaemon/ $AT_TELNET_DIR
# Set execute permissions
chmod +x $AT_TELNET_DIR/micropython/micropython
chmod +x $AT_TELNET_DIR/at-telnet/modem-multiclient.py
chmod +x $AT_TELNET_DIR/at-telnet/socat-armel-static
chmod +x $AT_TELNET_DIR/at-telnet/picocom
# Copy systemd unit files & reload
cp -f $AT_TELNET_DIR/systemd_units/*.service /lib/systemd/system
systemctl daemon-reload
# Link systemd files
ln -sf /lib/systemd/system/at-telnet-daemon.service /lib/systemd/system/multi-user.target.wants/
ln -sf /lib/systemd/system/socat-smd11.service /lib/systemd/system/multi-user.target.wants/
ln -sf /lib/systemd/system/socat-smd11-to-ttyIN.service /lib/systemd/system/multi-user.target.wants/
ln -sf /lib/systemd/system/socat-smd11-from-ttyIN.service /lib/systemd/system/multi-user.target.wants/
remount_ro
}
# Function to remove AT Telnet Daemon
remove_at_telnet() {
remount_rw
systemctl stop at-telnet-daemon
systemctl disable at-telnet-daemon
rm -rf $AT_TELNET_DIR
rm /lib/systemd/system/at-telnet-daemon.service
rm /lib/systemd/system/socat-smd11.service
rm /lib/systemd/system/socat-smd11-to-ttyIN.service
rm /lib/systemd/system/socat-smd11-from-ttyIN.service
systemctl daemon-reload
remount_ro
}
# Function to install/update Simple Admin
install_update_simple_admin() {
remount_rw
cd $TMP_DIR
wget $GITHUB_URL -O main.zip
unzip -o main.zip
cp -Rf quectel-rgmii-simpleadmin-at-telnet-daemon-main/simpleadmin/ $SIMPLE_ADMIN_DIR
# Set execute permissions
chmod +x $SIMPLE_ADMIN_DIR/scripts/*
chmod +x $SIMPLE_ADMIN_DIR/www/cgi-bin/*
chmod +x $SIMPLE_ADMIN_DIR/ttl/ttl-override
# Copy systemd unit files & reload
cp -f $SIMPLE_ADMIN_DIR/systemd/* /lib/systemd/system
systemctl daemon-reload
# Link systemd files
ln -sf /lib/systemd/system/simpleadmin_httpd.service /lib/systemd/system/multi-user.target.wants/
ln -sf /lib/systemd/system/simpleadmin_generate_status.service /lib/systemd/system/multi-user.target.wants/
ln -sf /lib/systemd/system/ttl-override.service /lib/systemd/system/multi-user.target.wants/
remount_ro
}
# Function to remove Simple Admin
remove_simple_admin() {
remount_rw
systemctl stop simpleadmin_httpd
systemctl disable simpleadmin_httpd
rm -rf $SIMPLE_ADMIN_DIR
rm /lib/systemd/system/simpleadmin_httpd.service
rm /lib/systemd/system/simpleadmin_generate_status.service
rm /lib/systemd/system/ttl-override.service
systemctl daemon-reload
remount_ro
}
# Main menu
while true; do
echo "Select an application to manage:"
echo "1) AT Telnet Daemon"
echo "2) Simple Admin"
echo "3) Exit"
read -p "Enter your choice: " choice
case $choice in
1)
if is_at_telnet_installed; then
echo "AT Telnet Daemon is already installed."
echo "1) Update"
echo "2) Remove"
read -p "Enter your choice: " at_telnet_choice
case $at_telnet_choice in
1) install_update_at_telnet;;
2) remove_at_telnet;;
*) echo "Invalid option";;
esac
else
echo "Installing AT Telnet Daemon..."
install_update_at_telnet
fi
;;
2)
if is_simple_admin_installed; then
echo "Simple Admin is already installed."
echo "1) Update"
echo "2) Remove"
read -p "Enter your choice: " simple_admin_choice
case $simple_admin_choice in
1) install_update_simple_admin;;
2) remove_simple_admin;;
*) echo "Invalid option";;
esac
else
echo "Installing Simple Admin..."
install_update_simple_admin
fi
;;
3) break;;
*) echo "Invalid option";;
esac
done
echo "Exiting script."