CODE: Webkit (without timer function)

As noted in an earlier post I’ve been working on a script which will get the latest Webkit (nightly) build and automatically install it, delete the old file, mount/unmount the dmg, then delete the DMG…. Here is the code (I will release the timer function code soon):

on run
getwebkitURL()
set webkitURL to the result
downTHEwebKIT(webkitURL)
set desktopURL to "~/Downloads/webkit-new.dmg"
set webkitexistingfile to "/Volumes/Macintosh HD/Applications/Webkit.app"
do shell script "rm -f -r /Volumes/Macintosh HD/Applications/Webkit.app"
do shell script "hdiutil attach ~/Downloads/webkit-new.dmg"
--do shell script "ditto /Volumes/WebKit/Webkit.app /Volumes/MacintoshHD/Applications/"
tell application "Finder"
delete "MacintoshHD:Applications:Webkit.app"
move (contents of "WebKit:WebKit.app") to "MacintoshHD:Applications"
end tell
do shell script "hdiutil unmount /Volumes/Webkit"
tell application "Finder"
delete "MacintoshHD:Users:bradleyarsenault:Downloads:webkit-new.dmg"
end tell
end run

on downTHEwebKIT(webkitURL)
set webkitURL to webkitURL
set desktopURL to "~/Downloads/webkit-new.dmg"
set curlURL to ("curl -o " & desktopURL & " " & webkitURL)
do shell script curlURL
end downTHEwebKIT

on getwebkitURL()
set curlURL to "curl http://nightly.webkit.org/"
do shell script curlURL
set webkitPage to the result
set osxOffset to the offset of "<p><strong><a href=" in (webkitPage as string)
set webkitshortPage to (characters (osxOffset + 20) thru (count webkitPage) in webkitPage as string)
set dmgOffset to the offset of ".dmg" in (webkitshortPage as string)
set webkitURL to characters (1) thru (dmgOffset + 3) of webkitshortPage as string
return webkitURL
end getwebkitURL

  • http://webkit.org/ Mark Rowe

    Why not just rely on the nightly build’s ability to self-update?

  • http://bradarsenault.com BradArsenault

    There are two reasons why I prefer this method:
    A) doing something by hand made code is always a lot more fun and possibly functional B) I didn’t know Webkit had a built-in update function.