PDA

View Full Version : OSX LION 10.7.2 wifi loss problem solver? | #!/bin/bash




BDM STUDIOS NL
Jan 17, 2012, 05:49 AM
Hi, found this 'solution?' on a forum for wifi loss in OSX LION 10.7.2.
Anybody here to tell me if this can be trusted?

Thanks in advance and Cheers!

"keepalive.sh"

#!/bin/bash
ping -i 5 -n yahoo.com
------------

"main.scpt"

set scriptName to "keepalive.sh" -- change this to what your script is called

set myPath to (path to me) as string
set myPath to posix_path(myPath)

do shell script "/bin/sh " & myPath & "Contents/Resources/Scripts/" & scriptName & " &> /dev/null"

on posix_path(mac_path)
set mac_path to (mac_path as text)
set root to (offset of ":" in mac_path)
set rootdisk to (characters 1 thru (root - 1) of mac_path)
tell application "Finder"
if (disk (rootdisk as string) is the startup disk) then
set unixpath to "/" & (characters (root + 1) thru end of mac_path)
else
set unixpath to "/Volumes:" & mac_path
end if
end tell
set chars to every character of unixpath
repeat with i from 2 to length of chars
if item i of chars as text is equal to "/" then
set item i of chars to ":"
else if item i of chars as text is equal to ":" then
set item i of chars to "/"
else if item i of chars as text is equal to "'" then
set item i of chars to "\\'"
else if item i of chars as text is equal to "\"" then
set item i of chars to "\\" & "\""
else if item i of chars as text is equal to "*" then
set item i of chars to "\\*"
else if item i of chars as text is equal to "?" then
set item i of chars to "\\?"
else if item i of chars as text is equal to " " then
set item i of chars to "\\ "
else if item i of chars as text is equal to "\\" then
set item i of chars to "\\\\"
end if
end repeat
return every item of chars as string
end posix_path
---------



jiminaus
Jan 17, 2012, 06:13 AM
All the AppleScript main.scpt does in just starts keepalive.sh. Most of it a custom code to translate a path like Macintosh HD:Users:me into /Users/me. I don't why the posix path built into AppleScript wasn't used.

All keepalive.sh does is start a ping command to ping yahoo.com indefinitely every 5 seconds.

I guess the objective is not never let your wireless link be idle for more than 5 seconds.



AFAIK. main.scpt can be simplified to:

set scriptName to "keepalive.sh" -- change this to what your script is called

set myPath to path to me
set myPath to POSIX path of myPath

do shell script "/bin/sh " & myPath & "Contents/Resources/Scripts/" & scriptName & " &> /dev/null"

BDM STUDIOS NL
Jan 17, 2012, 06:50 AM
All the AppleScript main.scpt does in just starts keepalive.sh. Most of it a custom code to translate a path like Macintosh HD:Users:me into /Users/me. I don't why the posix path built into AppleScript wasn't used.

All keepalive.sh does is start a ping command to ping yahoo.com indefinitely every 5 seconds.

I guess the objective is not never let your wireless link be idle for more than 5 seconds.



AFAIK. main.scpt can be simplified to:

set scriptName to "keepalive.sh" -- change this to what your script is called

set myPath to path to me
set myPath to POSIX path of myPath

do shell script "/bin/sh " & myPath & "Contents/Resources/Scripts/" & scriptName & " &> /dev/null"


Thanks a lot mate for your prompt reply! Not a programmer myself so I just wanted to check it with your guys....(and girls :p)

Cheers!!!!!

4np
Feb 8, 2012, 04:34 AM
Most of it a custom code to translate a path like Macintosh HD:Users:me into /Users/me. I don't why the posix path built into AppleScript wasn't used.

Just what I thought :P Typically something for the Daily WTF (http://thedailywtf.com/) ;) In addition it does not even need to execute a shell script, it could have executed the ping requests itself as well... In fact, the script can even be a one-liner:


do shell script "screen -d -m ping -i 5 -n yahoo.com"


But on topic... This Applescript does nothing more than to send an ICMP request every 5 seconds to yahoo (via a strange setup from applescript to shell script). If your wifi is failing, your wifi setup is bad... You'd better go fix that instead of relying on a ping request to keep your wifi alive...