58 lines
1.1 KiB
Bash
Executable file
58 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
get_adapter_name() {
|
|
adapter=$(/usr/sbin/networksetup -listnetworkserviceorder | /usr/bin/sed -En 's|^\(Hardware Port: AX88179A, Device: (en.)\)$|\1|p')
|
|
echo "$adapter"
|
|
}
|
|
|
|
check_ethernet_status() {
|
|
adapter="$1"
|
|
status=$( /sbin/ifconfig "$adapter" | grep 'status: active' )
|
|
if [ -n "$status" ]; then
|
|
echo "Ethernet on adapter $adapter is connected"
|
|
return 0
|
|
else
|
|
echo "Ethernet on adapter $adapter is not connected"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
open_app() {
|
|
app="$1"
|
|
if ! pgrep -f "$app" >/dev/null; then
|
|
/usr/bin/open -a "$app"
|
|
fi
|
|
}
|
|
|
|
close_app() {
|
|
app="$1"
|
|
if pgrep -f "$app" >/dev/null; then
|
|
pkill -f "$app"
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "Usage: $0 <program_to_run>"
|
|
return 1
|
|
fi
|
|
|
|
adapter=$(get_adapter_name)
|
|
if [ -z "$adapter" ]; then
|
|
echo "Failed to get adapter name"
|
|
return 1
|
|
fi
|
|
|
|
app="$1"
|
|
|
|
if check_ethernet_status "$adapter"; then
|
|
open_app "$app"
|
|
else
|
|
close_app "$app"
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
main "$@"
|
|
|