Last active
August 29, 2015 13:57
-
-
Save pipwerks/9443477 to your computer and use it in GitHub Desktop.
Revisions
-
pipwerks revised this gist
Mar 9, 2014 . 1 changed file with 137 additions and 138 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,157 +1,156 @@ (* functions *) -- string replace function from http://www.macosxautomation.com/applescript/sbrt/sbrt-06.html on replace_chars(this_text, search_string, replacement_string) set AppleScript's text item delimiters to the search_string set the item_list to every text item of this_text set AppleScript's text item delimiters to the replacement_string set this_text to the item_list as string set AppleScript's text item delimiters to "" return this_text end replace_chars -- replaces specified domain with IP address in specified URLs on replace_localhost(theDomain, theURL, theIP) set newURL to "" if theDomain is in theURL then set newURL to replace_chars(theURL, theDomain, theIP) else set newURL to "http://" & theIP & "/" end if return newURL end replace_localhost -- copies URL to clipboard and ensures original app remains active (frontmost) on copy_to_clipboard(theText, currentApp) try tell application "Finder" set the clipboard to theText as text -- display alert "\"" & (the clipboard) & "\" was copied to the clipboard" end tell tell application "System Events" to set frontmost of process currentApp to true end try end copy_to_clipboard on run -- If user has custom hostname, let's get it display dialog "If you are using a custom localhost domain (via VirtualHostX or similar), please enter the domain now:" default answer "localhost" set domain to text returned of result -- empty list for placing localhost URLs set localhostURLs to {} -- placeholder for target URL set selectedURL to "" -- get name of current active app so we can switch back after getting IP address tell application "System Events" set currentApp to item 1 of (get name of processes whose frontmost is true) end tell (* get the IP of localhost. try en0 first, then en1 if no result found originally used ifconfig with grep, like so: do shell script "ifconfig en0|grep \"inet \"|cut -d ' ' -f 2" A shorter, more concise method was described in The Macintosh Terminal Pocket Guide by Daniel J. Barrett do shell script "ipconfig getifaddr en0" This method sometimes produces an error in AppleScript. To avoid the error, add ";exit 0" "ipconfig getifaddr en0; exit 0" See this URL for an explanation http://lists.apple.com/archives/applescript-studio/2006/Jul/msg00141.html *) -- try en0 (if both wired and wireless are available, en0 is usually the wired connection) set theIP to do shell script "ipconfig getifaddr en0; exit 0" -- if en0 didn't work, try en1 if theIP is equal to "" then set theIP to do shell script "ipconfig getifaddr en1; exit 0" end if -- if both en0 and en1 don't work, you're out of luck if theIP is equal to "" then display dialog "Sorry, your IP address couldn't be determined." return end if (* Check Google Chrome Loop to find localhost (or custom domain) Code adapted from http://superuser.com/questions/263198/switch-between-google-chrome-tabs-using-applescript *) if application "Google Chrome" is running then tell application "Google Chrome" set i to 0 try repeat with t in (tabs of (first window)) set i to i + 1 if domain is in URL of t then set localhostURLs to localhostURLs & URL of t end if end repeat end try end tell end if (* Check Apple Safari Loop to find localhost (or custom domain) *) if application "Safari" is running then tell application "Safari" set i to 0 try repeat with t in (tabs of (first window)) set i to i + 1 if domain is in URL of t then set localhostURLs to localhostURLs & URL of t end if end repeat end try end tell end if -- Clean up the URLs: replace all instances of "localhost" with IP set i to 1 repeat with theURL in localhostURLs set item i of localhostURLs to replace_localhost(domain, theURL, theIP) set i to i + 1 end repeat if (count of localhostURLs) is greater than 1 then choose from list localhostURLs with prompt "Which URL would you like to copy?" OK button name "Copy" default items item 1 of localhostURLs -- "cancel" button will return a value of false if the result is not false then set selectedURL to item 1 of the result as text end if if selectedURL is not "" then copy_to_clipboard(selectedURL, currentApp) else if (count of localhostURLs) is equal to 1 then set selectedURL to item 1 of localhostURLs as text copy_to_clipboard(selectedURL, currentApp) display dialog selectedURL & " has been copied to your clipboard" end if end run -
pipwerks created this gist
Mar 9, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,157 @@ (* functions *) -- string replace function from http://www.macosxautomation.com/applescript/sbrt/sbrt-06.html on replace_chars(this_text, search_string, replacement_string) set AppleScript's text item delimiters to the search_string set the item_list to every text item of this_text set AppleScript's text item delimiters to the replacement_string set this_text to the item_list as string set AppleScript's text item delimiters to "" return this_text end replace_chars -- replaces specified domain with IP address in specified URLs on replace_localhost(theDomain, theURL, theIP) set newURL to "" if theDomain is in theURL then set newURL to replace_chars(theURL, theDomain, theIP) else set newURL to "http://" & theIP & "/" end if return newURL end replace_localhost -- copies URL to clipboard and ensures original app remains active (frontmost) on copy_to_clipboard(theText, currentApp) try tell application "Finder" set the clipboard to theText as text -- display alert "\"" & (the clipboard) & "\" was copied to the clipboard" end tell tell application "System Events" to set frontmost of process currentApp to true end try end copy_to_clipboard on run -- If user has custom hostname, let's get it display dialog "If you are using a custom localhost domain (via VirtualHostX or similar), please enter the domain now:" default answer "localhost" set domain to text returned of result -- empty list for placing localhost URLs set localhostURLs to {} -- placeholder for target URL set selectedURL to "" -- get name of current active app so we can switch back after getting IP address tell application "System Events" set currentApp to item 1 of (get name of processes whose frontmost is true) end tell (* get the IP of localhost. try en0 first, then en1 if no result found originally used ifconfig with grep, like so: do shell script "ifconfig en0|grep \"inet \"|cut -d ' ' -f 2" A shorter, more concise method was described in The Macintosh Terminal Pocket Guide by Daniel J. Barrett do shell script "ipconfig getifaddr en0" This method sometimes produces an error in AppleScript. To avoid the error, add ";exit 0" "ipconfig getifaddr en0; exit 0" See this URL for an explanation http://lists.apple.com/archives/applescript-studio/2006/Jul/msg00141.html *) -- try en0 (if both wired and wireless are available, en0 is usually the wired connection) set theIP to do shell script "ipconfig getifaddr en0; exit 0" -- if en0 didn't work, try en1 if theIP is equal to "" then set theIP to do shell script "ipconfig getifaddr en1; exit 0" end if -- if both en0 and en1 don't work, you're out of luck if theIP is equal to "" then display dialog "Sorry, your IP address couldn't be determined." return end if (* Check Google Chrome Loop to find localhost (or custom domain) Code adapted from http://superuser.com/questions/263198/switch-between-google-chrome-tabs-using-applescript *) if application "Google Chrome" is running then tell application "Google Chrome" set i to 0 try repeat with t in (tabs of (first window)) set i to i + 1 if domain is in URL of t then set localhostURLs to localhostURLs & URL of t end if end repeat end try end tell end if (* Check Apple Safari Loop to find localhost (or custom domain) *) if application "Safari" is running then tell application "Safari" set i to 0 try repeat with t in (tabs of (first window)) set i to i + 1 if domain is in URL of t then set localhostURLs to localhostURLs & URL of t end if end repeat end try end tell end if -- Clean up the URLs: replace all instances of "localhost" with IP set i to 1 repeat with theURL in localhostURLs set item i of localhostURLs to replace_localhost(domain, theURL, theIP) set i to i + 1 end repeat if (count of localhostURLs) is greater than 1 then choose from list localhostURLs with prompt "Which URL would you like to copy?" OK button name "Copy" default items item 1 of localhostURLs -- "cancel" button will return a value of false if the result is not false then set selectedURL to item 1 of the result as text end if if selectedURL is not "" then copy_to_clipboard(selectedURL, currentApp) else if (count of localhostURLs) is equal to 1 then set selectedURL to item 1 of localhostURLs as text copy_to_clipboard(selectedURL, currentApp) display dialog selectedURL & " has been copied to your clipboard" end if end run