diff --git a/Kaju Admin App/Custom Plist/Info.plist b/Kaju Admin App/Custom Plist/Info.plist new file mode 100644 index 0000000..3e2cf89 --- /dev/null +++ b/Kaju Admin App/Custom Plist/Info.plist @@ -0,0 +1,8 @@ + + + + + NSHighResolutionCapable + + + diff --git a/Kaju Admin App/Kaju Admin.xojo_project b/Kaju Admin App/Kaju Admin.xojo_project index 1d6d966..2511686 100644 --- a/Kaju Admin App/Kaju Admin.xojo_project +++ b/Kaju Admin App/Kaju Admin.xojo_project @@ -19,20 +19,22 @@ Class=Information;../Kaju Classes/Kaju/Information.xojo_code;&h6497A7C4;&h114003 Class=UpdateInitiater;../Kaju Classes/Kaju/UpdateInitiater.xojo_code;&h4DBB48E5;&h11400316;false Folder=Controls;Controls;&hE8B14E5;&h0;false Folder=Other Classes;Other Classes;&h6AF5D169;&h0;false +Folder=Custom Plist;Custom Plist;&h74C1A7FF;&h0;false Class=TextFieldChanger;Controls/TextFieldChanger.xojo_code;&h4D090F7E;&hE8B14E5;false Class=TextAreaChanger;Controls/TextAreaChanger.xojo_code;&hDD8825B;&hE8B14E5;false Class=CheckBoxChanger;Controls/CheckBoxChanger.xojo_code;&h5115CD40;&hE8B14E5;false Class=FolderItemAlias;Other Classes/FolderItemAlias.xojo_code;&h53EF1AE5;&h6AF5D169;false Class=HTTPSSocket;../Kaju Classes/Kaju/HTTPSSocket.xojo_code;&h5ACDFAEB;&h11400316;false +Plist=Info;Custom Plist/Info.plist;&h7393D7FF;&h74C1A7FF;false AppMenuBar=MainMenuBar MajorVersion=1 -MinorVersion=4 +MinorVersion=5 SubVersion=1 NonRelease=0 Release=3 InfoVersion=Kaju Admin -LongVersion=v.1.5 -ShortVersion=1.5 +LongVersion=v.1.5.1 +ShortVersion=1.5.1 WinCompanyName=MacTechnologies Consulting WinInternalName= WinProductName= diff --git a/Kaju Admin App/WndAdmin.xojo_window b/Kaju Admin App/WndAdmin.xojo_window index 0175cc6..cf5c195 100644 --- a/Kaju Admin App/WndAdmin.xojo_window +++ b/Kaju Admin App/WndAdmin.xojo_window @@ -96,7 +96,7 @@ Begin Window WndAdmin LockRight = False LockTop = False Scope = 2 - TabIndex = 1 + TabIndex = 5 TabPanelIndex = 0 TabStop = True TextFont = "System" @@ -127,7 +127,7 @@ Begin Window WndAdmin LockRight = False LockTop = False Scope = 2 - TabIndex = 2 + TabIndex = 6 TabPanelIndex = 0 TabStop = True TextFont = "System" @@ -233,7 +233,7 @@ Begin Window WndAdmin Scope = 2 SmallTabs = False TabDefinition = "Release Notes\rBinaries\rImage" - TabIndex = 14 + TabIndex = 4 TabPanelIndex = 0 TabStop = True TextFont = "System" @@ -334,7 +334,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 2 + TabIndex = 11 TabPanelIndex = 1 Text = "Preview:" TextAlign = 0 @@ -368,7 +368,7 @@ Begin Window WndAdmin LockTop = True Scope = 2 State = 0 - TabIndex = 0 + TabIndex = 1 TabPanelIndex = 2 TabStop = True TextFont = "System" @@ -409,7 +409,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 2 + TabIndex = 3 TabPanelIndex = 2 TabStop = True Text = "" @@ -443,7 +443,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 3 + TabIndex = 12 TabPanelIndex = 2 Text = "Hash:" TextAlign = 0 @@ -477,7 +477,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 4 + TabIndex = 13 TabPanelIndex = 2 Text = "URL:" TextAlign = 0 @@ -511,7 +511,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 3 + TabIndex = 10 TabPanelIndex = 1 Text = "Release Notes (HTML):" TextAlign = 0 @@ -545,7 +545,7 @@ Begin Window WndAdmin LockTop = True Scope = 2 State = 0 - TabIndex = 5 + TabIndex = 4 TabPanelIndex = 2 TabStop = True TextFont = "System" @@ -620,7 +620,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 8 + TabIndex = 15 TabPanelIndex = 2 Text = "Hash:" TextAlign = 0 @@ -654,7 +654,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 9 + TabIndex = 16 TabPanelIndex = 2 Text = "URL:" TextAlign = 0 @@ -688,7 +688,7 @@ Begin Window WndAdmin LockTop = True Scope = 2 State = 0 - TabIndex = 10 + TabIndex = 8 TabPanelIndex = 2 TabStop = True TextFont = "System" @@ -720,7 +720,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 13 + TabIndex = 18 TabPanelIndex = 2 Text = "Hash:" TextAlign = 0 @@ -754,7 +754,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 14 + TabIndex = 19 TabPanelIndex = 2 Text = "URL:" TextAlign = 0 @@ -797,7 +797,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 0 + TabIndex = 1 TabPanelIndex = 3 TabStop = True Text = "" @@ -831,7 +831,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 1 + TabIndex = 3 TabPanelIndex = 3 Text = "URL:" TextAlign = 0 @@ -865,7 +865,7 @@ Begin Window WndAdmin LockTop = True Scope = 2 State = 0 - TabIndex = 2 + TabIndex = 0 TabPanelIndex = 3 TabStop = True TextFont = "System" @@ -892,7 +892,7 @@ Begin Window WndAdmin LockTop = True Renderer = 0 Scope = 2 - TabIndex = 3 + TabIndex = 2 TabPanelIndex = 3 TabStop = True Top = 224 @@ -928,7 +928,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 15 + TabIndex = 0 TabPanelIndex = 2 TabStop = True Text = "" @@ -962,7 +962,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 16 + TabIndex = 20 TabPanelIndex = 2 Text = "Minimum Required Version:" TextAlign = 0 @@ -1007,7 +1007,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 4 + TabIndex = 7 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1051,7 +1051,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 5 + TabIndex = 8 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1095,7 +1095,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 6 + TabIndex = 9 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1139,7 +1139,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 7 + TabIndex = 2 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1183,7 +1183,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 8 + TabIndex = 3 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1225,9 +1225,9 @@ Begin Window WndAdmin Password = False ReadOnly = True Scope = 2 - TabIndex = 1 + TabIndex = 22 TabPanelIndex = 2 - TabStop = True + TabStop = False Text = "" TextColor = &c00000000 TextFont = "System" @@ -1268,9 +1268,9 @@ Begin Window WndAdmin Password = False ReadOnly = True Scope = 2 - TabIndex = 6 + TabIndex = 23 TabPanelIndex = 2 - TabStop = True + TabStop = False Text = "" TextColor = &c00000000 TextFont = "System" @@ -1311,7 +1311,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 12 + TabIndex = 11 TabPanelIndex = 2 TabStop = True Text = "" @@ -1354,7 +1354,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 17 + TabIndex = 5 TabPanelIndex = 2 TabStop = True Text = "" @@ -1388,7 +1388,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 18 + TabIndex = 14 TabPanelIndex = 2 Text = "Executable:" TextAlign = 0 @@ -1431,7 +1431,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 19 + TabIndex = 9 TabPanelIndex = 2 TabStop = True Text = "" @@ -1465,7 +1465,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 20 + TabIndex = 17 TabPanelIndex = 2 Text = "Executable:" TextAlign = 0 @@ -1508,9 +1508,9 @@ Begin Window WndAdmin Password = False ReadOnly = True Scope = 2 - TabIndex = 11 + TabIndex = 24 TabPanelIndex = 2 - TabStop = True + TabStop = False Text = "" TextColor = &c00000000 TextFont = "System" @@ -1553,7 +1553,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 9 + TabIndex = 4 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1597,7 +1597,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 10 + TabIndex = 5 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1641,7 +1641,7 @@ Begin Window WndAdmin LockTop = True MenuValue = 0 Scope = 0 - TabIndex = 11 + TabIndex = 6 TabPanelIndex = 1 TabStop = True TextColor = &c00000000 @@ -1674,7 +1674,7 @@ Begin Window WndAdmin LockRight = True LockTop = True Scope = 2 - TabIndex = 21 + TabIndex = 2 TabPanelIndex = 2 TabStop = True TextFont = "SmallSystem" @@ -1705,7 +1705,7 @@ Begin Window WndAdmin LockRight = True LockTop = True Scope = 2 - TabIndex = 23 + TabIndex = 10 TabPanelIndex = 2 TabStop = True TextFont = "SmallSystem" @@ -1736,7 +1736,7 @@ Begin Window WndAdmin LockRight = True LockTop = True Scope = 2 - TabIndex = 24 + TabIndex = 6 TabPanelIndex = 2 TabStop = True TextFont = "SmallSystem" @@ -1767,7 +1767,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 25 + TabIndex = 21 TabPanelIndex = 2 Text = "Use ‘$VERSION$’ in the URL to insert the version on export" TextAlign = 1 @@ -1810,7 +1810,7 @@ Begin Window WndAdmin Password = False ReadOnly = False Scope = 2 - TabIndex = 4 + TabIndex = 1 TabPanelIndex = 0 TabStop = True Text = "" @@ -1878,7 +1878,7 @@ Begin Window WndAdmin LockTop = True Scope = 2 State = 0 - TabIndex = 5 + TabIndex = 2 TabPanelIndex = 0 TabStop = True TextFont = "System" @@ -1917,7 +1917,7 @@ Begin Window WndAdmin LockTop = True Renderer = 0 Scope = 2 - TabIndex = 7 + TabIndex = 15 TabPanelIndex = 0 TabStop = True Top = 156 @@ -1988,7 +1988,7 @@ Begin Window WndAdmin Multiline = False Scope = 2 Selectable = False - TabIndex = 6 + TabIndex = 14 TabPanelIndex = 0 Text = "None" TextAlign = 0 @@ -2087,7 +2087,7 @@ Begin Window WndAdmin LockRight = False LockTop = False Scope = 2 - TabIndex = 15 + TabIndex = 7 TabPanelIndex = 0 TabStop = True TextFont = "SmallSystem" @@ -2129,7 +2129,7 @@ Begin Window WndAdmin LockTop = False MenuValue = -1 Scope = 0 - TabIndex = 16 + TabIndex = 9 TabPanelIndex = 0 TabStop = True TextColor = &c00000000 diff --git a/Kaju Classes/Kaju.xojo_code b/Kaju Classes/Kaju.xojo_code index 8554230..43952f0 100644 --- a/Kaju Classes/Kaju.xojo_code +++ b/Kaju Classes/Kaju.xojo_code @@ -382,7 +382,7 @@ Protected Module Kaju #tag Constant, Name = kUpdatePacketMarker, Type = String, Dynamic = False, Default = \"KAJU ", Scope = Protected #tag EndConstant - #tag Constant, Name = Version, Type = String, Dynamic = False, Default = \"1.5", Scope = Protected + #tag Constant, Name = Version, Type = String, Dynamic = False, Default = \"1.5.1", Scope = Protected #tag EndConstant diff --git a/Kaju Classes/Kaju/UpdateInitiater.xojo_code b/Kaju Classes/Kaju/UpdateInitiater.xojo_code index fcf4c2b..f4190fa 100644 --- a/Kaju Classes/Kaju/UpdateInitiater.xojo_code +++ b/Kaju Classes/Kaju/UpdateInitiater.xojo_code @@ -269,7 +269,7 @@ Protected Class UpdateInitiater script = script.ReplaceAll( kMarkerAppName, executable.Name ) script = script.ReplaceAll( kMarkerAppParent, ShellPathQuote( executable.Parent ) ) - script = script.ReplaceAll( kMarkerAppVersion, Kaju.AppVersionString ) + script = script.ReplaceAll( kMarkerAppVersion, Kaju.AppVersionString ) script = script.ReplaceAll( kMarkerNewAppName, ReplacementExecutableName ) script = script.ReplaceAll( kMarkerNewAppParent, ShellPathQuote( ReplacementAppFolder ) ) script = script.ReplaceAll( kMarkerTempFolder, ShellPathQuote( TempFolder ) ) @@ -457,7 +457,7 @@ Protected Class UpdateInitiater #tag Constant, Name = kUpdaterScript, Type = String, Dynamic = False, Default = \"", Scope = Private #Tag Instance, Platform = Mac OS, Language = Default, Definition = \"#!/bin/bash\n\n#\n# FUNCTIONS\n#\n\nfunction log_cmd {\n /usr/bin/logger -t \"Kaju Update Script\" $@\n}\n\n# END FUNCTIONS\n\n#\n# These will be filled in by the calling app\n#\n\nAPP_NAME\x3D@@APP_NAME@@\nAPP_PARENT\x3D@@APP_PARENT@@\nAPP_VERSION\x3D@@APP_VERSION@@\nNEW_APP_NAME\x3D@@NEW_APP_NAME@@\nNEW_APP_PARENT\x3D@@NEW_APP_PARENT@@\nTEMP_FOLDER_PATH\x3D@@TEMP_FOLDER@@\nPID_FILE\x3D@@PID_FILE_PATH@@\n\n#\n# -----------------\n#\n\nreadonly true\x3D1\nreadonly false\x3D0\n\nAPP_PATH\x3D$APP_PARENT/$APP_NAME\nNEW_APP_PATH\x3D$NEW_APP_PARENT/$NEW_APP_NAME\n\nRENAMED_APP_NAME\x3D`echo \"$APP_NAME\" | /usr/bin/sed -E s/\\.[aA][pP]{2}//`-`date +%Y%m%d%H%M%S`.app\nRENAMED_APP_PATH\x3D$APP_PARENT/$RENAMED_APP_NAME\n\nlog_cmd \"STARTING UPDATE OF $APP_NAME\"\n\ncounter\x3D10\nwhile [ -f \"$PID_FILE\" ]\ndo\n log_cmd \"Checking to see if $PIDFILE exists\x2C $counter\"\n sleep 1\n \n let counter\x3Dcounter-1\n \n if [ $counter \x3D\x3D 0 ]\n then\n \tlog_cmd \'ERROR: Could not update app\x2C it never quit\'\n \texit 1\n fi\ndone\n\nPROCEED\x3D$true\n\n#\n# Rename the old application\n#\nlog_cmd \"Renaming old application $APP_NAME to $RENAMED_APP_NAME\"\nmv \"$APP_PATH\" \"$RENAMED_APP_PATH\"\n\n#\n# Make sure that succeeded\n#\nif [ $\? \x3D\x3D 0 ]\nthen\n log_cmd \'...confirmed\'\nelse\n log_cmd \"Could not rename old application to $RENAMED_APP_PATH\"\n PROCEED\x3D0\nfi\n\n#\n# Move in the replacement app\n#\nif [ $PROCEED \x3D\x3D $true ]\nthen\n log_cmd \"Moving new application $NEW_APP_PATH to folder $APP_PARENT\"\n mv \"$NEW_APP_PATH\" \"$APP_PARENT\"\n\n #\n # Make sure that worked\n #\n if [ $\? \x3D\x3D 0 ]\n then\n log_cmd \'...confirmed\'\n else\n log_cmd \"Could not move in new application\"\n log_cmd \"Attempting to restore old application and launch it\"\n mv \"$RENAMED_APP_PATH\" \"$APP_PATH\"\n open \"$APP_PATH\" --args --kaju-fail\n PROCEED\x3D$false\n fi\nfi\n\nif [ $PROCEED \x3D\x3D $true ]\nthen\n log_cmd \"Removing old application $RENAMED_APP_NAME\"\n rm -fr \"$RENAMED_APP_PATH\"\n \n APP_PATH\x3D$APP_PARENT/$NEW_APP_NAME\n log_cmd \"Starting new application at $APP_PATH\"\n \n open \"$APP_PATH\" --args --kaju-success \"$APP_VERSION\"\nfi\n\nif [ $PROCEED \x3D\x3D $true ]\nthen\n log_cmd \'Removing temp folder\'\n rm -fr \"$TEMP_FOLDER_PATH\"\nfi\n" #Tag Instance, Platform = Linux, Language = Default, Definition = \"#!/bin/bash\n\n#\n# FUNCTIONS\n#\n\nfunction log_cmd {\n\t/usr/bin/logger -t \"Kaju Update Script\" $@\n}\n\n# END FUNCTIONS\n\n#\n# These will be filled in by the calling app\n#\n\nAPP_NAME\x3D@@APP_NAME@@\nAPP_PARENT\x3D@@APP_PARENT@@\nAPP_VERSION\x3D@@APP_VERSION@@\nNEW_APP_NAME\x3D@@NEW_APP_NAME@@\nNEW_APP_PARENT\x3D@@NEW_APP_PARENT@@\nTEMP_FOLDER_PATH\x3D@@TEMP_FOLDER@@\nPID_FILE\x3D@@PID_FILE_PATH@@\n\n#\n# This array will store the names of the items next to the executable\n# under the variable NEW_APP_OTHER_NAME\n#\nNEW_APP_OTHER_UB\x3D@@NEW_APP_OTHER_UB@@\n\n@@NEW_APP_OTHER_ARRAY@@\n\n#\n# -----------------\n#\n\nreadonly true\x3D1\nreadonly false\x3D0\n\nAPP_PATH\x3D$APP_PARENT/$APP_NAME\n\nBACKUP_PARENT\x3D$APP_PARENT/${APP_NAME}-`date +%Y%m%d%H%M%S`\nmkdir \"$BACKUP_PARENT\"\n\nlog_cmd \"STARTING UPDATE OF $APP_NAME\"\n\ncounter\x3D10\nwhile [ -f \"$PID_FILE\" ]\ndo\n\tlog_cmd \"Checking to see if $PIDFILE exists\x2C $counter\"\n\tsleep 1\n\t\n\tlet counter\x3Dcounter-1\n\t\n\tif [ $counter \x3D\x3D 0 ]\n\tthen\n\t\tlog_cmd \'ERROR: Could not update app\x2C it never quit\'\n\t\texit 1\n\tfi\ndone\n\nPROCEED\x3D$true\n\n#\n# Move the other items\n#\nlog_cmd \"Copying other items to backup $BACKUP_PARENT\"\n\ncounter\x3D0\nwhile [ $counter -le $NEW_APP_OTHER_UB ]\ndo\n\tthis_item\x3D${NEW_APP_OTHER_NAME[$counter]}\n\tlog_cmd \"Looking for item $this_item in $APP_PARENT\"\n\t\n\tthis_path\x3D$APP_PARENT/$this_item\n\tif [ -d \"$this_path\" ] || [ -f \"$this_path\" ]\n\tthen\n\t\tlog_cmd \"...found\x2C copying\"\n\t\tcp -pr \"$this_path\" \"$BACKUP_PARENT\"\n\t\tif [ $\? \x3D\x3D 0 ]\n\t\tthen\n\t\t\tlog_cmd \"...confirmed\"\n\t\telse\n\t\t\t log_cmd \"...FAILED!\"\n\t\t\t PROCEED\x3D$false\n\t\t\t break\n\t\tfi\n\tfi\n\t(( counter++ ))\ndone\n\n#\n# Move the executable\n#\nif [ $PROCEED \x3D\x3D $true ]\nthen\n\tlog_cmd \"Moving the executable $APP_NAME to backup\"\n\tmv \"$APP_PARENT/$APP_NAME\" \"$BACKUP_PARENT\"\n\tif [ $\? \x3D\x3D 0 ]\n\tthen\n\t\tlog_cmd \"...confirmed\"\n\telse\n\t\tlog_cmd \"...FAILED! (Error $\?)\"\n\t\tPROCEED\x3D$false\n\tfi\nfi\n\n#\n# Make sure there wasn\'t an error during the backup\n#\nif [ $PROCEED \x3D\x3D $true ]\nthen\n\tlog_cmd \'All items backed up\'\nelse\n\tlog_cmd \'Attempting to copy items back to parent\'\n\trsync -a --exclude\x3D\'.DS_Store\' \"${BACKUP_PARENT}/\" \"$APP_PARENT\"\nfi\n\n#\n# Move in the replacement files\n#\nif [ $PROCEED \x3D\x3D $true ]\nthen\n\tlog_cmd \"Copying files from $NEW_APP_PARENT to folder $APP_PARENT\"\n\trsync -a --exclude\x3D\'.DS_Store\' \"${NEW_APP_PARENT}/\" \"$APP_PARENT\"\n\t\n\tif [ $\? \x3D\x3D 0 ]\n\tthen\n\t\tlog_cmd \'...confirmed\'\n\telse\n\t\tlog_cmd \"...FAILED! (Error $\?)\"\n\t\tlog_cmd \"Attempting to restore old application\"\n\t\trsync -a --exclude\x3D\'.DS_Store\' \"${BACKUP_PARENT}/\" \"$APP_PARENT\"\n\t\tPROCEED\x3D$false\n\t\tbreak\n\tfi\nfi\n\n#\n# Removed the backup folder if everything has gone swimmingly so\n#\nif [ $PROCEED \x3D\x3D $true ]\nthen\n\tlog_cmd \'Removing backup\'\n\trm -r \"$BACKUP_PARENT\"\nfi\n\n#\n# Launch the application\n#\nif [ $PROCEED \x3D $true ]\nthen\n\tlog_cmd \'Making the new app executable\'\n\tchmod +x \"$APP_PARENT/$NEW_APP_NAME\"\n\tlog_cmd \'Launching new app\'\n\t\"$APP_PARENT/$NEW_APP_NAME\" --kaju-success \"$APP_VERSION\"\nelse\n\tlog_cmd \'Launching old app\'\n\t\"$APP_PARENT/$APP_NAME\" --kaju-fail\nfi\n\nlog_cmd \'Removing temp folder\'\nrm -fr \"$TEMP_FOLDER_PATH\"\n" - #Tag Instance, Platform = Windows, Language = Default, Definition = \"@ECHO OFF \n\nREM\nREM These will be filled in by the calling app\nREM\n\nSET APP_NAME\x3D@@APP_NAME@@\nSET APP_PARENT\x3D@@APP_PARENT@@\nSET APP_VERSION\x3D@@APP_VERSION@@\nSET NEW_APP_NAME\x3D@@NEW_APP_NAME@@\nSET NEW_APP_PARENT\x3D@@NEW_APP_PARENT@@\nSET TEMP_FOLDER_PATH\x3D@@TEMP_FOLDER@@\nSET DECOMPRESSED_FOLDER_PATH\x3D@@DECOMPRESSED_FOLDER@@\nSET PID_FILE\x3D@@PID_FILE_PATH@@\n\nREM\nREM -----------------\nREM\n\nSET TODAY_DATE\x3D%DATE:~10\x2C4%-%DATE:~4\x2C2%-%DATE:~7\x2C2% %TIME:~0\x2C2%:%TIME:~3\x2C2%:%TIME:~6\x2C2%\nSET APP_PATH\x3D%APP_PARENT%\\%APP_NAME%\n\nSET BACKUP_PARENT\x3D%APP_PATH%-%DATE:~10\x2C4%%DATE:~4\x2C2%%DATE:~7\x2C2%%TIME:~0\x2C2%%TIME:~3\x2C2%%TIME:~6\x2C2%\n\nSET LOGGER\x3D%APP_PARENT%\\%NEW_APP_NAME% Update Log.txt\nECHO \"STARTED ON %TODAY_DATE%\" >> \"%LOGGER%\" 2>&1\n\nFOR /L %%i IN (1\x2C1\x2C10) DO (\n\tIF NOT EXIST \"%PID_FILE%\" (\n\t\tGOTO :program_exited\n\t)\n\n\tREM Windows version of sleep 1. Starting in Windows Vista\x2C the sleep command was removed.\n\tping -n 2 127.0.0.1 >nul\n\n\tIF %%i \x3D\x3D 10 (\n\t\tECHO ERROR: Could not update app\x2C it never quit >> \"%LOGGER%\" 2>&1\n\t\tEXIT /B 1\n\t)\n)\n:program_exited\n\nmkdir \"%BACKUP_PARENT%\"\n\nSET PROCEED\x3D1\n\nREM\nREM Move the other items\nREM\nECHO \"Copying items to backup %BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\nREM We will need to manually populate these move commands. Windows Batch doesn\'t really handle arrays\x2C\nREM only looping through space delimited elements of a string. Below is a template for moving one such file.\n\nREM BEGIN PSEUDO-ARRAY\nSET THIS_ITEM\x3D@@OTHER_NAME@@\nSET THIS_PATH\x3D%APP_PARENT%\\%THIS_ITEM%\nECHO \"Looking for item %THIS_PATH%\" >> \"%LOGGER%\" 2>&1\nIF EXIST \"%THIS_PATH%\" (\n\tGOTO :copy_@@OTHER_NAME_WO_SPACES@@\n)\nECHO \"...not found as file\x2C trying as directory\" >> \"%LOGGER%\" 2>&1\nIF EXIST \"%THIS_PATH%\\NUL\" (\n\tGOTO :copy_@@OTHER_NAME_WO_SPACES@@\n) ELSE (\n\tECHO \"...NOT FOUND!\" >> \"%LOGGER%\" 2>&1\n\tGOTO :finished_with_@@OTHER_NAME_WO_SPACES@@\n)\n\n:copy_@@OTHER_NAME_WO_SPACES@@\n\nECHO \"...found\x2C copying\" >> \"%LOGGER%\" 2>&1\nCOPY \"%THIS_PATH%\" \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\nIF %ERRORLEVEL% NEQ 0 (\n\tECHO \"...FAILED! (Error %ERRORLEVEL%)\" >> \"%LOGGER%\" 2>&1\n\tSET PROCEED\x3D0\n\tGOTO :restore_from_backup\n) ELSE (\n\tECHO \"...confirmed\" >> \"%LOGGER%\" 2>&1\n)\n\n:finished_with_@@OTHER_NAME_WO_SPACES@@\n\nREM END PSEUDO-ARRAY\n\nREM\nREM Move the executable to backup\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Moving the executable %APP_NAME% to backup\" >> \"%LOGGER%\" 2>&1\n\tMOVE \"%APP_PATH%\" \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tIF %ERRORLEVEL% NEQ 0 (\n\t\tECHO \"...FAILED! (Error %ERRORLEVEL%)\" >> \"%LOGGER%\" 2>&1\n\t\tSET PROCEED\x3D0\n\t\tGOTO :restore_from_backup\n\t) ELSE (\n\t\tECHO \"...confirmed\" >> \"%LOGGER%\" 2>&1\n\t)\n)\n\nREM\nREM Make sure there wasn\'t an error during the move\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"All items moved to backup\" >> \"%LOGGER%\" 2>&1\n)\n\nREM\nREM Copy in the replacement files\nREM\n\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Copying files from %NEW_APP_PARENT% to folder %APP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tXCOPY /g /y /e /k \"%NEW_APP_PARENT%\" \"%APP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tIF %ERRORLEVEL% NEQ 0 (\n\t\tECHO \"...FAILED! (Error %ERRORLEVEL%)\" >> \"%LOGGER%\" 2>&1\n\t\tSET PROCEED\x3D0\n\t\tGOTO :restore_from_backup\n\t) ELSE (\n\t\tECHO \"...confirmed\" >> \"%LOGGER%\" 2>&1\n\t)\n)\n\nREM\nREM If we get here\x2C it all worked\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tGOTO :all_succeeded\n)\n\n:restore_from_backup\nIF %PROCEED% \x3D\x3D 0 (\n\tECHO \"Attempting to restore old application\" >> \"%LOGGER%\" 2>&1\n\n\tXCOPY /g /y /e /k \"%BACKUP_PARENT%\" \"%APP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tIF %ERRORLEVEL% EQU 0 (\n\t\tRMDIR /S /Q \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\t)\n)\nGOTO :launch_application\n\n:all_succeeded\nREM\nREM Remove the backup and decompressed folders if everything has gone swimmingly so far\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Removing backup\" >> \"%LOGGER%\" 2>&1\n\tRMDIR /S /Q \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tECHO \"Removing decompressed folder\" >> \"%LOGGER%\" 2>&1\n\tRMDIR /S /Q \"%DECOMPRESSED_FOLDER_PATH%\" >> \"%LOGGER%\" 2>&1\n)\n\nREM\nREM Launch the application\nREM\n:launch_application\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Launching new app\" >> \"%LOGGER%\" 2>&1\n\tSTART \"\" \"%APP_PARENT%\\%NEW_APP_NAME%\" --kaju-success %APP_VERSION%\n) ELSE (\n\tECHO \"Launching old app\" >> \"%LOGGER%\" 2>&1\n\tSTART \"\" \"%APP_PATH%\" --kaju-fail\n)\n\nECHO \"Removing temp folder\" >> \"%LOGGER%\" 2>&1\nRMDIR /S /Q \"%TEMP_FOLDER_PATH%\" >> \"%LOGGER%\" 2>&1\n" + #Tag Instance, Platform = Windows, Language = Default, Definition = \"@ECHO OFF \n\nREM\nREM These will be filled in by the calling app\nREM\n\nSET APP_NAME\x3D@@APP_NAME@@\nSET APP_PARENT\x3D@@APP_PARENT@@\nSET APP_VERSION\x3D@@APP_VERSION@@\nSET NEW_APP_NAME\x3D@@NEW_APP_NAME@@\nSET NEW_APP_PARENT\x3D@@NEW_APP_PARENT@@\nSET TEMP_FOLDER_PATH\x3D@@TEMP_FOLDER@@\nSET DECOMPRESSED_FOLDER_PATH\x3D@@DECOMPRESSED_FOLDER@@\nSET PID_FILE\x3D@@PID_FILE_PATH@@\n\nREM\nREM -----------------\nREM\n\nSET TODAY_DATE\x3D%DATE:~10\x2C4%-%DATE:~4\x2C2%-%DATE:~7\x2C2% %TIME:~0\x2C2%:%TIME:~3\x2C2%:%TIME:~6\x2C2%\nSET APP_PATH\x3D%APP_PARENT%\\%APP_NAME%\n\nSET BACKUP_PARENT\x3D%APP_PATH%-%DATE:~10\x2C4%%DATE:~4\x2C2%%DATE:~7\x2C2%%TIME:~0\x2C2%%TIME:~3\x2C2%%TIME:~6\x2C2%\n\nSET LOGGER\x3D%APP_PARENT%\\%NEW_APP_NAME% Update Log.txt\nECHO \"STARTED ON %TODAY_DATE%\" >> \"%LOGGER%\" 2>&1\n\nFOR /L %%i IN (1\x2C1\x2C10) DO (\n\tIF NOT EXIST \"%PID_FILE%\" (\n\t\tGOTO :program_exited\n\t)\n\n\tREM Windows version of sleep 1. Starting in Windows Vista\x2C the sleep command was removed.\n\tping -n 2 127.0.0.1 >nul\n\n\tIF %%i \x3D\x3D 10 (\n\t\tECHO ERROR: Could not update app\x2C it never quit >> \"%LOGGER%\" 2>&1\n\t\tEXIT /B 1\n\t)\n)\n:program_exited\n\nmkdir \"%BACKUP_PARENT%\"\n\nSET PROCEED\x3D1\n\nREM\nREM Move the other items\nREM\nECHO \"Copying items to backup %BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\nREM We will need to manually populate these move commands. Windows Batch doesn\'t really handle arrays\x2C\nREM only looping through space delimited elements of a string. Below is a template for moving one such file.\n\nREM BEGIN PSEUDO-ARRAY\nSET THIS_ITEM\x3D@@OTHER_NAME@@\nSET THIS_PATH\x3D%APP_PARENT%\\%THIS_ITEM%\nECHO \"Looking for item %THIS_PATH%\" >> \"%LOGGER%\" 2>&1\nIF EXIST \"%THIS_PATH%\" (\n\tGOTO :copy_@@OTHER_NAME_WO_SPACES@@\n)\nECHO \"...not found as file\x2C trying as directory\" >> \"%LOGGER%\" 2>&1\nIF EXIST \"%THIS_PATH%\\NUL\" (\n\tGOTO :copy_@@OTHER_NAME_WO_SPACES@@\n) ELSE (\n\tECHO \"...NOT FOUND!\" >> \"%LOGGER%\" 2>&1\n\tGOTO :finished_with_@@OTHER_NAME_WO_SPACES@@\n)\n\n:copy_@@OTHER_NAME_WO_SPACES@@\n\nECHO \"...found\x2C copying\" >> \"%LOGGER%\" 2>&1\nCOPY \"%THIS_PATH%\" \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\nIF %ERRORLEVEL% NEQ 0 (\n\tECHO \"...FAILED! (Error %ERRORLEVEL%)\" >> \"%LOGGER%\" 2>&1\n\tSET PROCEED\x3D0\n\tGOTO :restore_from_backup\n) ELSE (\n\tECHO \"...confirmed\" >> \"%LOGGER%\" 2>&1\n)\n\n:finished_with_@@OTHER_NAME_WO_SPACES@@\n\nREM END PSEUDO-ARRAY\n\nREM\nREM Move the executable to backup\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Moving the executable %APP_NAME% to backup\" >> \"%LOGGER%\" 2>&1\n\tMOVE \"%APP_PATH%\" \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tIF %ERRORLEVEL% NEQ 0 (\n\t\tECHO \"...FAILED! (Error %ERRORLEVEL%)\" >> \"%LOGGER%\" 2>&1\n\t\tSET PROCEED\x3D0\n\t\tGOTO :restore_from_backup\n\t) ELSE (\n\t\tECHO \"...confirmed\" >> \"%LOGGER%\" 2>&1\n\t)\n)\n\nREM\nREM Make sure there wasn\'t an error during the move\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"All items moved to backup\" >> \"%LOGGER%\" 2>&1\n)\n\nREM\nREM Copy in the replacement files\nREM\n\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Copying files from %NEW_APP_PARENT% to folder %APP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tXCOPY /g /y /e /k \"%NEW_APP_PARENT%\" \"%APP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tIF %ERRORLEVEL% NEQ 0 (\n\t\tECHO \"...FAILED! (Error %ERRORLEVEL%)\" >> \"%LOGGER%\" 2>&1\n\t\tSET PROCEED\x3D0\n\t\tGOTO :restore_from_backup\n\t) ELSE (\n\t\tECHO \"...confirmed\" >> \"%LOGGER%\" 2>&1\n\t)\n)\n\nREM\nREM If we get here\x2C it all worked\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tGOTO :all_succeeded\n)\n\n:restore_from_backup\nIF %PROCEED% \x3D\x3D 0 (\n\tECHO \"Attempting to restore old application\" >> \"%LOGGER%\" 2>&1\n\n\tXCOPY /g /y /e /k \"%BACKUP_PARENT%\" \"%APP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tIF %ERRORLEVEL% EQU 0 (\n\t\tRMDIR /S /Q \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\t)\n)\nGOTO :launch_application\n\n:all_succeeded\nREM\nREM Remove the backup and decompressed folders if everything has gone swimmingly so far\nREM\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Removing backup\" >> \"%LOGGER%\" 2>&1\n\tRMDIR /S /Q \"%BACKUP_PARENT%\" >> \"%LOGGER%\" 2>&1\n\tECHO \"Removing decompressed folder\" >> \"%LOGGER%\" 2>&1\n\tRMDIR /S /Q \"%DECOMPRESSED_FOLDER_PATH%\" >> \"%LOGGER%\" 2>&1\n)\n\nREM\nREM Launch the application\nREM\n:launch_application\nIF %PROCEED% \x3D\x3D 1 (\n\tECHO \"Launching new app\" >> \"%LOGGER%\" 2>&1\n\tSTART \"\" \"%APP_PARENT%\\%NEW_APP_NAME%\" --kaju-success %APP_VERSION%\n\tGOTO :remove_backup_folder\n) ELSE (\n\tECHO \"Launching old app\" >> \"%LOGGER%\" 2>&1\n\tSTART \"\" \"%APP_PATH%\" --kaju-fail\n)\n\n:remove_backup_folder\nECHO \"Removing temp folder\" >> \"%LOGGER%\" 2>&1\nRMDIR /S /Q \"%TEMP_FOLDER_PATH%\" >> \"%LOGGER%\" 2>&1\n" #tag EndConstant diff --git a/Kaju Update Test v1.kaju b/Kaju Update Test v1.kaju index 6172cf8..2a85bb1 100644 --- a/Kaju Update Test v1.kaju +++ b/Kaju Update Test v1.kaju @@ -11,16 +11,16 @@ "AppName":"Kaju Update Test", "RequiresPayment":true, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } @@ -34,16 +34,16 @@ "AppName":"New Kaju Update Test", "RequiresPayment":false, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } @@ -57,16 +57,16 @@ "AppName":"Kaju Update Test", "RequiresPayment":false, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } @@ -103,16 +103,16 @@ "AppName":"Kaju Update Test", "RequiresPayment":false, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http:\/\/www.mactechnologies.com\/Kaju_Test\/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } diff --git a/Platform Scripts/Kaju Windows Script.txt b/Platform Scripts/Kaju Windows Script.txt index 1b88cd4..0da72aa 100644 --- a/Platform Scripts/Kaju Windows Script.txt +++ b/Platform Scripts/Kaju Windows Script.txt @@ -157,10 +157,12 @@ REM IF %PROCEED% == 1 ( ECHO "Launching new app" >> "%LOGGER%" 2>&1 START "" "%APP_PARENT%\%NEW_APP_NAME%" --kaju-success %APP_VERSION% + GOTO :remove_backup_folder ) ELSE ( ECHO "Launching old app" >> "%LOGGER%" 2>&1 START "" "%APP_PATH%" --kaju-fail ) +:remove_backup_folder ECHO "Removing temp folder" >> "%LOGGER%" 2>&1 RMDIR /S /Q "%TEMP_FOLDER_PATH%" >> "%LOGGER%" 2>&1 diff --git a/README.md b/README.md index 07573bd..efb6c6a 100644 --- a/README.md +++ b/README.md @@ -316,7 +316,7 @@ For the appropriate branch to your GitHub account. Use "develop" for general fix There are two places to look for strings that need translation: -1. The constants in the KajuLocale module. +1. The constants in the KajuLocale module. 1. The error messages in KajuException. Add a translation for each, then submit a pull request as outlined above. @@ -383,3 +383,10 @@ Add a translation for each, then submit a pull request as outlined above. 1.5 (June 3, 2015) - **Admin app**: Enable substitution of `$VERSION$` in binary URL's. + +1.5.1 (June 19, 2015) + +- **Admin app**: Fixed tab order of controls. +- **Admin app**: Retinized! +- Added what should be an unneeded, but apparently necessary, GOTO to the Windows script. + diff --git a/Update Test Files (Upload These)/Kaju_Update_Test_Linux.zip b/Update Test Files (Upload These)/Kaju_Update_Test_Linux.zip index 462dc3d..912753a 100644 Binary files a/Update Test Files (Upload These)/Kaju_Update_Test_Linux.zip and b/Update Test Files (Upload These)/Kaju_Update_Test_Linux.zip differ diff --git a/Update Test Files (Upload These)/Kaju_Update_Test_Mac.zip b/Update Test Files (Upload These)/Kaju_Update_Test_Mac.zip index 4aacd6e..5557f32 100644 Binary files a/Update Test Files (Upload These)/Kaju_Update_Test_Mac.zip and b/Update Test Files (Upload These)/Kaju_Update_Test_Mac.zip differ diff --git a/Update Test Files (Upload These)/Kaju_Update_Test_Win.zip b/Update Test Files (Upload These)/Kaju_Update_Test_Win.zip index 978c6d8..af63ba9 100644 Binary files a/Update Test Files (Upload These)/Kaju_Update_Test_Win.zip and b/Update Test Files (Upload These)/Kaju_Update_Test_Win.zip differ diff --git a/Update Test Files (Upload These)/UpdateInformation.html b/Update Test Files (Upload These)/UpdateInformation.html index 800472b..ed64974 100644 --- a/Update Test Files (Upload These)/UpdateInformation.html +++ b/Update Test Files (Upload These)/UpdateInformation.html @@ -1,4 +1,4 @@ -KAJU 3601E7F748E1B50C09ABA16295C32F694CC77F66A6C9EE5E7AE0589F726C3F9F2B6B97EE09C7597F1C642948ED938BE7A0E04B7759D6ADE8E85802EA48959FC38F2C0140C4EED18E35D0A2D8E9606DAF87DCA2C21E928AEBA09989531D4C9AD5C1B061B9024396BDA736C15E4030C54F59011368FD16725FDDFCCAD1CA3F782B60ADB820DCE367BC019057DBC0324D0BB403029628A1171E258DD9C12E76AF67532D82F8170061B868C5CCB7933AC5F9CFB498775E4E588101041274A6270BE4C308C234A57E0303567970F564A8566CEBFDFF063EE4AE75B0360E6C45AAD4AD9021F123C089A095D750185B55E4A002A6866FFB86102E4E07601107592B352E +KAJU 6C241FEEA7B9DFEA19783BE3D609A793A83C1D3EE5B6248A3AE5C1C1D793A98ABAA77284527D3A68BE926AB694DFC337F0D3CD96203FB7463DAA66BE8ECA94A6733470949C771C33F47BCF22CBAB15693CEA34BC8CBE1E27B3E354922820FDE6CDB0E4423BA9EFFF552634CBB99B35D483D4A69268EF5229A39EB4F6BF465A173C6964066A82227C089D3D106D33EA7E6B86FA91020AA2F5B2D0FD9480A98288DFA81908ADF20E90AE48D28FDDB516764B884F49F2D75130B7FB3B478FC7ED92E60513B2D8750A1AA176DBC39B73B279FC8D8BD4C919ABF68CFA8CB029EDF53B473C3D43028F82AB11145C05C38CF7C532845209D95B6E484B77E342D5E95C86 [ { "Version":"1.1 (10)", @@ -9,16 +9,16 @@ "AppName":"Kaju Update Test", "RequiresPayment":true, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } @@ -32,16 +32,16 @@ "AppName":"New Kaju Update Test", "RequiresPayment":false, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } @@ -55,16 +55,16 @@ "AppName":"Kaju Update Test", "RequiresPayment":false, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" } @@ -101,16 +101,16 @@ "AppName":"Kaju Update Test", "RequiresPayment":false, "MacBinary":{ - "Hash":"889C7ADD24CE85BB7297AE30F4FEFE20", + "Hash":"600DAE3C8C9AC6B581C5EFCBDC6AA59E", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Mac.zip" }, "WindowsBinary":{ - "Hash":"F7A02B839895FE2E7C9DAF5C97B3122B", + "Hash":"8E071A66783625B2DE8E65E310E213A8", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Win.zip", "ExecutableName":"Kaju Update Test.exe" }, "LinuxBinary":{ - "Hash":"9C9A658E10082B282F9E773A02232A86", + "Hash":"0C3E778999CAA6BBF5FA51301BE517DC", "URL":"http://www.mactechnologies.com/Kaju_Test/Kaju_Update_Test_Linux.zip", "ExecutableName":"Kaju Update Test" }