From 9c530434a51b050bad0850c8584df88572e3aa12 Mon Sep 17 00:00:00 2001 From: Emran Billah Date: Thu, 8 Aug 2024 14:17:17 -0300 Subject: [PATCH] Testing with root user permissions --- test/test-run.sh | 70 ++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/test/test-run.sh b/test/test-run.sh index 03e5485..457ea6d 100644 --- a/test/test-run.sh +++ b/test/test-run.sh @@ -1,7 +1,4 @@ #!/bin/bash -# -# Usage: eg. ./test-run.sh -p /dev/ttyUSB0 -s 192.168.10.1 -d 192.168.10.2 -# # Function to display usage instructions usage() { @@ -27,32 +24,53 @@ if [ -z "$xbee_port" ] || [ -z "$xbee_net_src_ip" ] || [ -z "$xbee_net_dst_ip" ] usage fi -# Update package list and install necessary packages -echo "Installing necessary packages..." -sudo apt-get update -sudo apt-get install -y git build-essential libudev-dev iproute2 iputils-ping cargo +# Function to install dependencies, build xbnet, and configure the XBee network interface +run_as_root() { + # Update package list and install necessary packages + echo "Installing necessary packages..." + apt-get update + apt-get install -y git build-essential libudev-dev iproute2 iputils-ping cargo -# Clone the xbnet repository -echo "Cloning xbnet repository..." -git clone https://github.com/jgoerzen/xbnet.git /usr/src/xbnet + # Clone the xbnet repository + echo "Cloning xbnet repository..." + git clone https://github.com/jgoerzen/xbnet.git /usr/src/xbnet -# Build xbnet -echo "Building xbnet..." -cd /usr/src/xbnet -cargo build --release + # Build xbnet + echo "Building xbnet..." + cd /usr/src/xbnet + cargo build --release -# Copy the built binary to /usr/local/bin -echo "Installing xbnet..." -sudo cp target/release/xbnet /usr/local/bin/xbnet + # Copy the built binary to /usr/local/bin + echo "Installing xbnet..." + cp target/release/xbnet /usr/local/bin/xbnet -# Configure the XBee network interface -echo "Configuring XBee network interface..." -sudo xbnet $xbee_port tun -sudo ip addr add $xbee_net_src_ip/24 dev xbnet0 -sudo ip link set dev xbnet0 up + # Run xbnet in the background + echo "Starting xbnet on $xbee_port..." + xbnet $xbee_port tun & -# Ping the destination IP to verify connectivity -echo "Pinging destination IP $xbee_net_dst_ip..." -ping -c 4 $xbee_net_dst_ip + # Wait for the xbnet interface to be created + echo "Waiting for xbnet0 interface to be created..." + while ! ip link show xbnet0 > /dev/null 2>&1; do + sleep 1 + done -echo "Setup complete. The XBee network interface is configured and tested." + # Configure the XBee network interface + echo "Configuring XBee network interface..." + ip addr add $xbee_net_src_ip/24 dev xbnet0 + ip link set dev xbnet0 up + + # Ping the destination IP to verify connectivity + echo "Pinging destination IP $xbee_net_dst_ip..." + ping -c 4 $xbee_net_dst_ip + + echo "Setup complete. The XBee network interface is configured and tested." +} + +# Check if the script is running as root +if [ "$EUID" -ne 0 ]; then + echo "This script must be run as root. Re-running with sudo..." + sudo bash -c "$(declare -f run_as_root); run_as_root" "$@" + exit +else + run_as_root +fi