Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 17 additions & 18 deletions toggleAirport.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@
#git@github.com:paulbhart/toggleairport.git
#originally from https://gist.github.com/albertbori/1798d88a93175b9da00b

tmp_dir="$HOME/tmp"

if [ ! -d "$tmp_dir" ]; then
mkdir -p $tmp_dir
fi

# rate limiting, run at most every second
if [ -f "/var/tmp/prev_toggle_airport_run" ]; then
prev_toggle_airport_run=`cat /var/tmp/prev_toggle_airport_run`
if [ -f "$tmp_dir/prev_toggle_airport_run" ]; then
prev_toggle_airport_run=`cat $tmp_dir/prev_toggle_airport_run`
prev_toggle_airport_run_po=$(($prev_toggle_airport_run + 1))
current=`date +%s`

Expand All @@ -13,19 +19,19 @@ if [ -f "/var/tmp/prev_toggle_airport_run" ]; then
fi
fi

date +%s > /var/tmp/prev_toggle_airport_run
date +%s > $tmp_dir/prev_toggle_airport_run

function set_airport {

new_status=$1

if [ $new_status = "On" ]; then
/usr/sbin/networksetup -setairportpower $air_name on
touch /var/tmp/prev_air_on
touch $tmp_dir/prev_air_on
else
/usr/sbin/networksetup -setairportpower $air_name off
if [ -f "/var/tmp/prev_air_on" ]; then
rm /var/tmp/prev_air_on
if [ -f "$tmp_dir/prev_air_on" ]; then
rm $tmp_dir/prev_air_on
fi
fi

Expand All @@ -46,13 +52,13 @@ air_name=`networksetup -listnetworkserviceorder | sed -En 's/^\(Hardware Port: (

# Determine previous ethernet status
# If file prev_eth_on exists, ethernet was active last time we checked
if [ -f "/var/tmp/prev_eth_on" ]; then
if [ -f "$tmp_dir/prev_eth_on" ]; then
prev_eth_status="On"
fi

# Determine same for Wi-Fi status
# File is prev_air_on
if [ -f "/var/tmp/prev_air_on" ]; then
if [ -f "$tmp_dir/prev_air_on" ]; then
prev_air_status="On"
fi

Expand Down Expand Up @@ -84,23 +90,16 @@ else
# If so it was done manually by user
if [ "$prev_air_status" != "$air_status" ]; then
set_airport $air_status

# if [ "$air_status" = "On" ]; then
# notify "Wi-Fi manually turned on."
# else
# notify "Wi-Fi manually turned off."
# fi

fi

fi

# Update ethernet status
if [ "$eth_status" == "On" ]; then
touch /var/tmp/prev_eth_on
touch $tmp_dir/prev_eth_on
else
if [ -f "/var/tmp/prev_eth_on" ]; then
rm /var/tmp/prev_eth_on
if [ -f "$tmp_dir/prev_eth_on" ]; then
rm $tmp_dir/prev_eth_on
fi
fi

Expand Down