EthernetStatus script and the LaunchCtl plist
This commit is contained in:
parent
39dbb51857
commit
f9b79f5974
2 changed files with 78 additions and 0 deletions
58
.local/bin/ethernetstatus
Executable file
58
.local/bin/ethernetstatus
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
#!/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 "$@"
|
||||||
|
|
20
Library/LaunchAgents/ethernetstatus.plist
Normal file
20
Library/LaunchAgents/ethernetstatus.plist
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>net.francof.ethernetstatus</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>/Users/afonso/.local/bin/ethernetstatus</string>
|
||||||
|
<string>Ethernet Status</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>WatchPaths</key>
|
||||||
|
<array>
|
||||||
|
<string>/Library/Preferences/SystemConfiguration</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
Loading…
Reference in a new issue