View Single Post
  #1  
Old 06-25-2007, 01:48 PM
minckster minckster is offline
Registered User
 
Join Date: Apr 2006
Posts: 18
Pause/Restart VisualHub & Transmission for SD! backup

I'd like to see if anyone has any comments or suggestions for the way that I went about pausing and restarting VisualHub and Transmission during SuperDuper's backups. It works, but seems a bit messy and convoluted. (If left running, VisualHub and Transmission muck up SD's backups because they create large files and run for a long time.)

The general idea is that I created an AppleScript using Script Editor to pause the two apps and another to restart them. Since SuperDuper! won't let me run an AppleScript before and after backups (and since I couldn't figure out how to translate them into shell scripts ), I saved the AppleScripts as applications (File -> Save As -> application from dropdown menu). Lo and behold! SD would let me run my newly created applications as scripts before and after my backup.

The AppleScripts follow. The shortcuts to pause the apps are cmd-. for ViusualHub and opt-cmd-. for Transmission.
Code:
-- Pause VisualHub or Transmission, if running 
tell application "System Events"
	if ((count (every process whose name is "VisualHub")) > 0) then
		tell application "VisualHub" to activate
		tell application "System Events"
			tell process "Visualhub"
				-- Pause Conversion in VisualHub
				keystroke "." using {command down}
			end tell
		end tell
	end if
	
	if ((count (every process whose name is "Transmission")) > 0) then
		tell application "Transmission" to activate
		tell application "System Events"
			tell process "Transmission"
				-- Pause all downloads in Transmission
				keystroke "." using {option down, command down}
			end tell
		end tell
	end if
end tell
Code:
-- Resume VisualHub or Transmission, if running 
tell application "System Events"
	if ((count (every process whose name is "VisualHub")) > 0) then
		tell application "VisualHub" to activate
		tell application "System Events"
			tell process "Visualhub"
				-- Resume Conversion in VisualHub
				keystroke "/" using {command down}
			end tell
		end tell
	end if
	
	if ((count (every process whose name is "Transmission")) > 0) then
		tell application "Transmission" to activate
		tell application "System Events"
			tell process "Transmission"
				-- Resume all downloads in Transmission
				keystroke "/" using {option down, command down}
			end tell
		end tell
	end if
end tell
I should mention that I tried
Code:
#!/bin/sh
exec osascript <<END
. . . (insert AppleScript here) 
END
but that caused the VirtualHub and Transmission to open before the script evaluated "count (every process ...", so the if-clause was always true.

Please be gentle! They're only my second and third AppleScripts, and are the result of much Googling, copying, pasting, trial and error.
Reply With Quote