OSX LION 10.7.2 wifi loss problem solver? | #!/bin/bash

Discussion in 'Mac Programming' started by m4v3r1ck, Jan 17, 2012.

  1. macrumors 68000

    m4v3r1ck

    Joined:
    Nov 2, 2011
    Location:
    The Netherlands
    #1
    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
    ---------
     
  2. macrumors 65816

    jiminaus

    Joined:
    Dec 16, 2010
    Location:
    Sydney
    #2
    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:
    Code:
    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"
    
     
  3. thread starter macrumors 68000

    m4v3r1ck

    Joined:
    Nov 2, 2011
    Location:
    The Netherlands
    #3
    Thnx!!!!!

    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!!!!!
     
  4. 4np, Feb 8, 2012
    Last edited: Feb 8, 2012

    4np
    macrumors 6502a

    4np

    Joined:
    Feb 23, 2005
    Location:
    The Netherlands
    #4
    Just what I thought :p Typically something for the Daily WTF ;) 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:

    Code:
    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...
     

Share This Page