refactored structure

This commit is contained in:
Torben Haack
2024-10-10 06:17:26 +02:00
parent d3063864f3
commit e72c0ed92a
4 changed files with 45 additions and 13 deletions

View File

@@ -0,0 +1,52 @@
#!/bin/bash
# Define the state file
STATE_FILE="/tmp/network_toggle_state"
# Function to display current state
show_current_state() {
if [ "$1" == "down" ]; then
echo "Current state: Ethernet and MACVLAN active, Wi-Fi inactive"
else
echo "Current state: Wi-Fi active, Ethernet and MACVLAN inactive"
fi
}
# Check if the state file exists
if [ -f "$STATE_FILE" ]; then
# If the state file exists, read the state
STATE=$(cat "$STATE_FILE")
else
# If the state file does not exist, initialize it to "down"
STATE="down"
echo "$STATE" > "$STATE_FILE"
fi
# Show current state
show_current_state "$STATE"
# Toggle the state
if [ "$STATE" == "down" ]; then
echo "Switching to Wi-Fi mode..."
echo "Deactivating: Ethernet (eth0) and MACVLAN interfaces"
sudo ip link set macvlan0 down
sudo ip link set macvlan1 down
sudo ip link set eth0 down
echo "Activating: Wi-Fi (wlan0)"
sudo ip link set wlan0 up
echo "up" > "$STATE_FILE" # Update the state to "up"
else
echo "Switching to Ethernet and MACVLAN mode..."
echo "Deactivating: Wi-Fi (wlan0)"
sudo ip link set wlan0 down
echo "Activating: Ethernet (eth0) and MACVLAN interfaces"
sudo ip link set eth0 up
sudo ip link set macvlan1 up
sudo ip link set macvlan0 up
echo "down" > "$STATE_FILE" # Update the state to "down"
fi
# Show new state
echo ""
echo "Switch completed."
show_current_state $(cat "$STATE_FILE")