mirror of
				https://github.com/imezx/Warp.git
				synced 2025-10-31 02:09:18 +00:00 
			
		
		
		
	
		
			
	
	
		
			96 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			AppleScript
		
	
	
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			AppleScript
		
	
	
	
	
	
|  | (*
 | ||
|  | Copyright (c) 2015-present, Facebook, Inc. | ||
|  | 
 | ||
|  | This source code is licensed under the MIT license found in the | ||
|  | LICENSE file at | ||
|  | https://github.com/facebookincubator/create-react-app/blob/master/LICENSE | ||
|  | *) | ||
|  | 
 | ||
|  | property targetTab: null | ||
|  | property targetTabIndex: -1 | ||
|  | property targetWindow: null | ||
|  | property theProgram: "Google Chrome" | ||
|  | 
 | ||
|  | on run argv | ||
|  |   set theURL to item 1 of argv | ||
|  | 
 | ||
|  |   -- Allow requested program to be optional, | ||
|  |   -- default to Google Chrome | ||
|  |   if (count of argv) > 1 then | ||
|  |     set theProgram to item 2 of argv | ||
|  |   end if | ||
|  | 
 | ||
|  |   using terms from application "Google Chrome" | ||
|  |     tell application theProgram | ||
|  | 
 | ||
|  |       if (count every window) = 0 then | ||
|  |         make new window | ||
|  |       end if | ||
|  | 
 | ||
|  |       -- 1: Looking for tab running debugger | ||
|  |       -- then, Reload debugging tab if found | ||
|  |       -- then return | ||
|  |       set found to my lookupTabWithUrl(theURL) | ||
|  |       if found then | ||
|  |         set targetWindow's active tab index to targetTabIndex | ||
|  |         tell targetTab to reload | ||
|  |         tell targetWindow to activate | ||
|  |         set index of targetWindow to 1 | ||
|  |         return | ||
|  |       end if | ||
|  | 
 | ||
|  |       -- 2: Looking for Empty tab | ||
|  |       -- In case debugging tab was not found | ||
|  |       -- We try to find an empty tab instead | ||
|  |       set found to my lookupTabWithUrl("chrome://newtab/") | ||
|  |       if found then | ||
|  |         set targetWindow's active tab index to targetTabIndex | ||
|  |         set URL of targetTab to theURL | ||
|  |         tell targetWindow to activate | ||
|  |         return | ||
|  |       end if | ||
|  | 
 | ||
|  |       -- 3: Create new tab | ||
|  |       -- both debugging and empty tab were not found | ||
|  |       -- make a new tab with url | ||
|  |       tell window 1 | ||
|  |         activate | ||
|  |         make new tab with properties {URL:theURL} | ||
|  |       end tell | ||
|  |     end tell | ||
|  |   end using terms from | ||
|  | end run | ||
|  | 
 | ||
|  | -- Function: | ||
|  | -- Lookup tab with given url | ||
|  | -- if found, store tab, index, and window in properties | ||
|  | -- (properties were declared on top of file) | ||
|  | on lookupTabWithUrl(lookupUrl) | ||
|  |   using terms from application "Google Chrome" | ||
|  |     tell application theProgram | ||
|  |       -- Find a tab with the given url | ||
|  |       set found to false | ||
|  |       set theTabIndex to -1 | ||
|  |       repeat with theWindow in every window | ||
|  |         set theTabIndex to 0 | ||
|  |         repeat with theTab in every tab of theWindow | ||
|  |           set theTabIndex to theTabIndex + 1 | ||
|  |           if (theTab's URL as string) contains lookupUrl then | ||
|  |             -- assign tab, tab index, and window to properties | ||
|  |             set targetTab to theTab | ||
|  |             set targetTabIndex to theTabIndex | ||
|  |             set targetWindow to theWindow | ||
|  |             set found to true | ||
|  |             exit repeat | ||
|  |           end if | ||
|  |         end repeat | ||
|  | 
 | ||
|  |         if found then | ||
|  |           exit repeat | ||
|  |         end if | ||
|  |       end repeat | ||
|  |     end tell | ||
|  |   end using terms from | ||
|  |   return found | ||
|  | end lookupTabWithUrl |