From 2cce5d6a9618e6b98cba081655db1516f3dc3d63 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 5 Dec 2014 19:39:35 +0000 Subject: [PATCH] Mac KVASD-installer - Add download retry mechanism and improve error reporting Merged from wsjtx-1.4 branch. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4762 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- .../WSJTAppDelegate.applescript | 70 ++++++++++++------ .../Contents/MacOS/KVASD-installer | Bin 19368 -> 19368 bytes .../Contents/Resources/WSJTAppDelegate.scpt | Bin 53838 -> 57426 bytes 3 files changed, 48 insertions(+), 22 deletions(-) diff --git a/Darwin/KVASD-installer/KVASD-installer/WSJTAppDelegate.applescript b/Darwin/KVASD-installer/KVASD-installer/WSJTAppDelegate.applescript index 009e00b26..1d9de2903 100644 --- a/Darwin/KVASD-installer/KVASD-installer/WSJTAppDelegate.applescript +++ b/Darwin/KVASD-installer/KVASD-installer/WSJTAppDelegate.applescript @@ -29,9 +29,9 @@ script curl on download(|url|, fileName, destination) set |file| to destination & fileName try - do shell script "curl --fail --retry 5 --silent --output " & |file| & " " & |url| & fileName - on error - error "An error occurred downloading:" & return & return & |url| & fileName + do shell script "curl --fail --retry 5 --silent --show-error --output " & |file| & " " & |url| & fileName + on error errorString + error "An error occurred downloading:" & return & |url| & fileName & return & return & errorString end try return |file| as POSIX file end download @@ -40,9 +40,9 @@ script curl set md5Ext to ".md5" try return do shell script "curl --fail --retry 5 --silent " & |url| & fileName & md5Ext ¬ - & " | awk '{match($0,\"[[:xdigit:]]{32}\"); print substr($0,RSTART,RLENGTH)}'" - on error - error "An error occurred downloading" & return & return & fileName & md5Ext + & " | awk '{match($0,\"[[:xdigit:]]{32}\"); print substr($0,RSTART,RLENGTH)}'" + on error errorString + error "An error occurred downloading" & return & return & fileName & md5Ext & return & return & errorString end try end downloadMD5 end script @@ -50,7 +50,7 @@ end script -- kvasd looks after fetching kvasd files from the web source script kvasd property serverPath : "https://svn.code.sf.net/p/wsjt/wsjt/trunk/kvasd-binary/" - property destination : system attribute "TMPDIR" + property destination : (system attribute "TMPDIR") & "/" property targetName : "kvasd" on fetchEULA() @@ -64,9 +64,9 @@ script kvasd set md5Calc to do shell script "md5 " & (POSIX path of |file|) & " | cut -d' ' -f4" if md5Calc ≠ md5Sum then error "KVASD download corrupt MD5 hash check" & return & return ¬ - & " expected [" & md5Sum & "]" & return ¬ - & " actual [" & md5Calc & "]" ¬ - number 500 + & " expected [" & md5Sum & "]" & return ¬ + & " actual [" & md5Calc & "]" ¬ + number 500 end if end fetchBinary @@ -85,8 +85,12 @@ script kvasd on cleanUp() tell application "Finder" - delete (destination & targetName & "_eula.txt") as POSIX file - delete (destination & targetName) as POSIX file + if exists (destination & targetName & "_eula.txt") as POSIX file then + delete (destination & targetName & "_eula.txt") as POSIX file + end if + if exists (destination & targetName) as POSIX file then + delete (destination & targetName) as POSIX file + end if end tell end cleanUp end script @@ -155,19 +159,12 @@ script WSJTAppDelegate end repeat end process - -- execute around handler to display a progress bar during an action - on progressAction(action) - progressBar's startAnimation_(me) - tell action to run - progressBar's stopAnimation_(me) - end progressAction - -- -- NSApplicationDelegate Protocol -- on applicationWillFinishLaunching_(aNotification) try - mainWindow's registerForDraggedTypes_({"public.file-url"}) +-- mainWindow's registerForDraggedTypes_({"public.file-url"}) set defaultNotificationCentre to current application's NSNotificationCenter's defaultCenter() eulaTextView's setEditable_(false) @@ -175,7 +172,7 @@ script WSJTAppDelegate script downloadEula eulaTextView's setString_(read kvasd's fetchEULA()) end script - my progressAction(downloadEula) + my doWithRetry(downloadEula) saveButton's setEnabled_(true) printButton's setEnabled_(true) @@ -264,7 +261,7 @@ script WSJTAppDelegate script downloadKvasd kvasd's fetchBinary() end script - my progressAction(downloadKvasd) + my doWithRetry(downloadKvasd) on error errorString abort(errorString) end try @@ -321,6 +318,35 @@ script WSJTAppDelegate end try end viewChanged + -- Do something with retries + on doWithRetry(action) + set done to false + repeat until done + try + my progressAction(action) + set done to true + on error errorString + set userCanceled to false + try + set dialogResult to display alert errorString as warning ¬ + buttons {"Cancel", "Retry"} default button "Retry" cancel button "Cancel" + on error number -128 + set userCanceled to true + end try + if userCanceled then + error "User canceled operation" + end if + end try + end repeat + end doWithRetry + + -- execute around handler to display a progress bar during an action + on progressAction(action) + progressBar's startAnimation_(me) + tell action to run + progressBar's stopAnimation_(me) + end progressAction + -- Abort handler on abort(errorString) display alert errorString as critical buttons {"Ok"} default button "Ok" diff --git a/contrib/Darwin/KVASD-installer.app/Contents/MacOS/KVASD-installer b/contrib/Darwin/KVASD-installer.app/Contents/MacOS/KVASD-installer index a41411acbb702e031b41147eca22d146c74c31b0..248a9b3f7f7130de708983b5081476b2195e8111 100755 GIT binary patch delta 151 zcmZ26opHr<#tjXe0&ng{mGD`c-B>NSvvzjX`u&?HaK@d;EP*E6v0~-GlnC}2r{{_n5{KEAB FD*(Y!AS?g? diff --git a/contrib/Darwin/KVASD-installer.app/Contents/Resources/WSJTAppDelegate.scpt b/contrib/Darwin/KVASD-installer.app/Contents/Resources/WSJTAppDelegate.scpt index 174c3d2607eb56bf42827c3da799c6346643c83c..df8d5212d1b6201fd4baae9cfb58a5ea02fd80d1 100644 GIT binary patch literal 57426 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 UsC7J}d4jcSXeTgVe!2Yr0rd@$%>V!Z delta 27238 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