b X a8a8 PFFFF000000060001001777AA000000000065000000001001710000001-7FFF6FBE18000004800480627200-10627222FFFF0103BA0000100000036000000010BA4084062718197028C0001C627B500002000000BF00000000BA,This tool will create a customized version of Dave Winer's codeFreshener scripts in the frontmost tool. This is a time saver to any tool developer who wishes to keep his code up to date.000400000009000000020BC000050000000A0000000201BC0000600000031000000010920FFFF0900000 20 00070000003500000002010180A10 1018000080000009A0000000140,Verdana40,401C230 100009000000150000000239F1B939F1B9000A0000001500000002627222627222000B00000005000000020000C0000001400000001BA22B62AF0000F0000005200000000400 10 4,77A4,4,4,C4,4,C4,P00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAlh FP"Va8  "5 AM Y a8 author Andy Fragen authorEmailafragen@mac.com descriptiont homePageUrl-http://radio.weblogs.com/0001017/publicTools/nameInstall codeFreshener releaseDateversion0.62"~Verdana a3Fa3G'LANDmac Changes Created from installCodeFreshener script by AJF on 2/1/03; 8:18:14 AM. 9/26/02; 12:23:22 AM by AJF Add new tool tables. 1/15/02; 5:21:20 PM by DW Runs on the user's machine, when refreshing. local (adrtable = @system.temp.installCodeFreshenerSnapshot) installCodeFreshenerData = adrtable^.data installCodeFreshenerInfo = adrtable^.info installCodeFreshenerSuite = adrtable^.suite installCodeFreshenerThread = adrtable^.thread installCodeFreshenerWebsite = adrtable^.website filemenu.savemyroot (@installCodeFreshenerSuite) local (x=string.parseAddress (@installCodeFreshenerSuite), f = x[1]) frontier.tools.install (f) dialog.notify ("Thanks for updating to version " + installCodeFreshenerInfo.version + " of installCodeFreshener.root Tool!") N Verdana a3Ga3H'LANDmac Changes Created from installCodeFreshener script by AJF on 2/1/03; 8:18:16 AM. 1/15/02; 5:18:06 PM by DW This is the Refresh menu command. local (url = "http://radio.weblogs.com/0001017/publicTools/installCodeFreshener/codeFreshener.fttb") local (urllist = string.urlsplit (url)) local (s = tcp.httpclient (server:urllist [2], path:urllist [3])) local (f=frontier.pathstring + "codeFreshener.fttb") file.writewholefile (f, s) fatpages.importfatfile (f) thread.callscript (@system.temp.installCodeFreshenerSnapshot.loader, {})   Verdana a3Ia3I'LANDmac if dialog.confirm ("Get the newest code for installCodeFreshener.root Tool?") installCodeFreshenerSuite.codeFreshener.refreshCode()  !Verdana a3Ja3LLANDmac Changes Created from installCodeFreshener script by AJF on 2/1/03; 8:18:18 AM. 1/15/02; 5:08:55 PM by DW Created. I run this on my machine to create a package for refreshCode to load. Talk about a Mobius Strip. It's really simple code, but it's fun to walk your mind through it. local (oldinstallCodeFreshenerData) bundle //get installCodeFreshenerData ready for ship oldinstallCodeFreshenerData = installCodeFreshenerData new (tabletype, @installCodeFreshenerData) installCodeFreshenerThread.enabled = true installCodeFreshenerThread.ct = 0 installCodeFreshenerInfo.releaseDate = clock.now() local (adrtable = @system.temp.installCodeFreshenerSnapshot) new (tabletype, adrtable) adrtable^.data = installCodeFreshenerData adrtable^.info = installCodeFreshenerInfo adrtable^.suite = installCodeFreshenerSuite adrtable^.thread = installCodeFreshenerThread adrtable^.website = installCodeFreshenerWebsite adrtable^.loader = installCodeFreshenerSuite.codeFreshener.loadNewCode local (f = radio.file.getSubFolder ("publicTools/installCodeFreshener") + "codeFreshener.fttb") file.surefilepath (f) export.sendobject (adrtable, f) f = radio.file.getSubFolder ("publicTools/installCodeFreshener") + "installCodeFreshener.root" target.set (this) fileMenu.saveCopy (f) installCodeFreshenerData = oldinstallCodeFreshenerData dialog.alert (file.filefrompath (f) + " is " + string.megabytestring (file.size (f))) 8a3Fa3J  $0 @L [ loadNewCoder refreshCoder refreshCodeMenur releaseNewCoder dVerdana a+a+iVLANDmac if not defined (installCodeFreshenerData.toolFolder) installCodeFreshenerData.toolFolder = "gems/" '$"Verdana yG^Lz.LANDmac Changes 1/12/03; 3:22:27 PM by AJF Added check for tools with data in separate GDB 9/27/02; 11:38:52 PM by AJF Created. local (adrTool = table.getRootAddress(table.getCursorAddress())) local (adrTool = @["Traveller:Users:afragen:Applications:Radio UserLand:Tools:temp.root"]) local (isTool = file.fileFromPath (nameOf (string.popFileFromAddress(adrTool)^))) if not table.inGuestDatabase(adrTool) //test to ensure tool is frontmost. dialog.alert ("The frontmost window is not a tool.") break else if not isTool endsWith ".root" dialog.alert ("The frontmost window is not a tool.") break local (toolName = file.fileFromPath(string.popSuffix(adrTool))) local (adrCF = adrTool+"."+toolName+"Suite.codeFreshener") if not (dialog.yesNo ("Do you really want to install the codeFreshener scripts in the \"" + isTool + "\" Tool?")) break if not defined (installCodeFreshenerData.toolFolder) dialog.alert ("You will be asked where you are putting the tools you create. This will be a subfolder of the www folder. If it is more than one folder level deep separate the folders with a \"/\".") dialog.ask ("Enter your folder for developed tools:", @installCodeFreshenerData.toolFolder) if not (installCodeFreshenerData.toolFolder endsWith "/") installCodeFreshenerData.toolFolder = installCodeFreshenerData.toolFolder + "/" on showNew (adrWindow) edit (adrWindow) window.zoom(window.frontmost()) bundle //add toolSuite.codeFreshener table new (tableType, adrCF) bundle //codeFreshener.loadNewCode local (adrLNC = adrCF + ".loadNewCode") script.newScriptObject("Changes", adrLNC) target.set (adrLNC) script.makeComment () op.insert ("Created from installCodeFreshener script by AJF on " + clock.now() + ".", right) op.insert ("9/26/02; 12:23:22 AM by AJF", down) op.insert ("Add new tool tables.", right) op.insert ("1/15/02; 5:21:20 PM by DW", left) op.insert ("Runs on the user's machine, when refreshing.", right) op.firstSummit () op.insert ("", down) op.insert ("local (adrtable = @system.temp." + toolName + "Snapshot)", down) op.insert ("", down) if defined (adrTool^.[toolName + "Data"]) op.insert (toolName + "Data = adrtable^.data", down) if defined ([toolName + "Info"]) op.insert (toolName + "Info = adrtable^.info", down) if defined ([toolName + "NodeTypes"]) op.insert (toolName + "NodeTypes = adrtable^.nodetypes", down) if defined ([toolName + "Responder"]) op.insert (toolName + "Responder = adrtable^.responder", down) if defined ([toolName + "RpcHandlers"]) op.insert (toolName + "RpcHandlers = adrtable^.rpchandlers", down) if defined ([toolName + "SoapHandlers"]) op.insert (toolName + "SoapHandlers = adrtable^.soaphandlers", down) op.insert (toolName + "Suite = adrtable^.suite", down) if defined ([toolName + "Thread"]) op.insert (toolName + "Thread = adrtable^.thread", down) if defined ([toolName + "Website"]) op.insert (toolName + "Website = adrtable^.website", down) if defined ([toolName + "WindowTypes"]) op.insert (toolName + "WindowTypes = adrtable^.windowtypes", down) op.insert ("", down) op.insert ("filemenu.savemyroot (@" + toolName + "Suite)", down) op.insert ("", down) op.insert ("local (x=string.parseAddress (@" + toolName + "Suite), f = x[1])", down) op.insert ("frontier.tools.install (f)", down) op.insert ("", down) op.insert ("dialog.notify (\"Thanks for updating to version \" \+ " + toolName + "Info.version" + " \+ \" of " + isTool + " Tool!\")", down) showNew (adrLNC) bundle //codeFreshener.refreshCode local (adrRC = adrCF + ".refreshCode") script.newScriptObject("Changes", adrRC) target.set (adrRC) script.makeComment () op.insert ("Created from installCodeFreshener script by AJF on " + clock.now() + ".", right) op.insert ("1/15/02; 5:18:06 PM by DW", down) op.insert ("This is the Refresh menu command.", right) op.firstSummit () op.insert ("", down) op.insert ("local (url = \"" + radio.weblog.getUrl() + installCodeFreshenerData.toolFolder + toolName + "/codeFreshener.fttb\")", down) op.insert ("local (url = \"" + radio.upstream.getFileUrl (user.radio.prefs.wwwfolder + string.replaceAll (installCodeFreshenerData.toolFolder + toolName, "/", "/") + "/codeFreshener.fttb\")" + ""), down) //suggested by Mark Paschal script.makeComment () radio.upstream.getFileUrl (user.prefs.radio.wwwfolder + string.replaceAll (installCodeFreshenerData.toolFolder + toolName, "/", "\\") + "\\codeFreshener.fttb") op.insert ("local (urllist = string.urlsplit (url))", down) op.insert ("local (s = tcp.httpclient (server:urllist [2], path:urllist [3]))", down) op.insert ("", down) op.insert ("local (f=frontier.pathstring + \"codeFreshener.fttb\")", down) op.insert ("file.writewholefile (f, s)", down) op.insert ("fatpages.importfatfile (f)", down) op.insert ("thread.callscript (@system.temp." + toolName + "Snapshot.loader, {})", down) showNew (adrRC) bundle //codeFreshener.refreshCodeMenu local (adrRCM = adrCF + ".refreshCodeMenu") script.newScriptObject ("if dialog.confirm (\"Get the newest code for " + isTool + " Tool?\")", adrRCM) target.set (adrRCM) op.insert (toolName + "Suite.codeFreshener.refreshCode()", right) showNew (adrRCM) bundle //codeFreshener.releaseNewCode local (adrRNC = adrCF + ".releaseNewCode") script.newScriptObject ("Changes", adrRNC) target.set (adrRNC) script.makeComment() op.insert ("Created from installCodeFreshener script by AJF on " + clock.now() + ".", right) op.insert ("1/15/02; 5:08:55 PM by DW", down) op.insert ("Created. I run this on my machine to create a package for refreshCode to load.", right) op.insert ("Talk about a Mobius Strip. It's really simple code, but it's fun to walk your mind through it.", down) op.firstSummit () op.insert ("", down) if defined (adrTool^.[toolName + "Data"]) op.insert ("local (old" + toolName + "Data)", down) op.insert ("bundle //get " + toolName + "Data ready for ship", down) op.insert ("old" + toolName + "Data = " + toolName + "Data", right) op.insert ("new (tabletype, @" + toolName + "Data)", down) op.insert ("", left) if defined ([toolName + "Thread"]) op.insert (toolName + "Thread.enabled = true", down) op.insert (toolName + "Thread.ct = 0", down) op.insert (toolName + "Info.releaseDate = clock.now()", down) op.insert ("local (adrtable = @system.temp." + toolName + "Snapshot)", down) op.insert ("new (tabletype, adrtable)", down) if defined (adrTool^.[toolName + "Data"]) op.insert ("adrtable^.data = " + toolName + "Data", down) op.insert ("adrtable^.info = " +toolName + "Info", down) if defined ([toolName + "NodeTypes"]) op.insert ("adrtable^.nodetypes = " + toolName + "NodeTypes", down) if defined ([toolName + "Responder"]) op.insert ("adrtable^.responder = " + toolName + "Responder", down) if defined ([toolName + "RpcHandlers"]) op.insert ("adrtable^.rpchandlers = " + toolName + "RpcHandlers", down) if defined ([toolName + "SoapHandlers"]) op.insert ("adrtable^.soaphandlers = " + toolName + "SoapHandlers", down) op.insert ("adrtable^.suite = " + toolName + "Suite", down) if defined ([toolName + "Thread"]) op.insert ("adrtable^.thread = " + toolName + "Thread", down) if defined ([toolName + "Website"]) op.insert ("adrtable^.website = " + toolName + "Website", down) if defined ([toolName + "WindowTypes"]) op.insert ("adrtable^.windowtypes = " + toolName + "WindowTypes", down) op.insert ("", down) op.insert ("adrtable^.loader = " + toolName + "Suite.codeFreshener.loadNewCode", down) op.insert ("", down) op.insert ("local (f = radio.file.getSubFolder (\"" + installCodeFreshenerData.toolFolder + toolName + "\") + \"codeFreshener.fttb\")", down) op.insert ("file.surefilepath (f)", down) op.insert ("export.sendobject (adrtable, f)", down) op.insert ("", down) op.insert ("f = radio.file.getSubFolder (\"" + installCodeFreshenerData.toolFolder + toolName + "\") + \"" + toolName + ".root\"", down) op.insert ("target.set (this)", down) op.insert ("fileMenu.saveCopy (f)", down) op.insert ("", down) if defined (adrTool^.[toolName + "Data"]) op.insert (toolName + "Data = old" + toolName + "Data", down) op.insert ("dialog.alert (file.filefrompath (f) + \" is \" + string.megabytestring (file.size (f)))", down) showNew (adrRNC) bundle //add menu local (adrSuite = adrTool + "." + toolName + "Suite") local (firstUpperName = string.upper (toolName[1]) + string.mid (toolName, 2, infinity)) if not defined (adrSuite^.menu) new (menubarType, @adrSuite^.menu) target.set (@adrSuite^.menu) op.setLineText (firstUpperName) target.set (@adrSuite^.menu) menu.addMenuCommand (@adrSuite^.menu, firstUpperName, "Refresh Code...", "if dialog.confirm (\"Get the newest code?\"){" + toolName + "Suite.codeFreshener.refreshCode()}") try {menu.deleteMenuCommand (@adrSuite^.menu, firstUpperName, "Hello World")} Frontier.tools.commands.reInstallFrontTool () '$gN Verdana a8|(, ?}LANDmac local (pta = html.getPageTableAddress()) local (html = "") pta^.title = "Install codeFreshener" on add (s) html = html + (s + "\r\r\n"); add ("Version: " + installCodeFreshenerInfo.version + "

") add ("This tool will create a customized version of Dave Winer's codeFreshener scripts in your tool. The codeFreshener scripts originated in the myPictures tool as an easy way to provide updates to the tool by Dave. All you have to do is select \"Refresh Code...\" from the tool's menu.") add ("I added all the table types that are currently created when Radio creates a new tool. Additionally, if you have trimmed down your tool and deleted all the tables that you don't need installCodeFreshener tool will recognize this and create your customized scripts accordingly.") add ("If your tool keeps its data in a separate GDB the codeFreshener scripts will be modified so that your additional GDB is not modified.") add ("Please contact me with any problems or suggestions.") add ("When you first run the installCodeFreshener tool it will ask you where you put the tools you create. This is usually a folder inside your www folder. If you have nested folders be sure to enter the folder path using a \"/\" as a delimiter. I assume the www folder to be at the root level. The value is stored in installCodeFreshenerData.toolFolder. Note: This defaults to your gems folder.") add ("Your currently selected folder is " + radio.file.getSubFolder (installCodeFreshenerData.toolFolder) + "") return (html) g%Verdana T|ع|'LANDmac installCodeFreshenerSuite.install () 'Verdana T|}'LANDmac installCodeFreshenerSuite.uninstall () bVerdana a3Ma3M'LANDmac if dialog.confirm ("Get the newest code?"){installCodeFreshenerSuite.codeFreshener.refreshCode()} 6:Verdana r9a3M'LANDmac InstallCodeFreshener Install Uninstall Refresh Code... F' F GpHs6dVerdana   p  Verdana 'LANDmac This script returns a string which appears in the Status Center on the Radio UserLand home page. return ("I'm a Tool developer's Tool!")  xVerdana ͹c^LANDmac local (adrTool = table.getRootAddress(table.getCursorAddress())) local (isTool = file.fileFromPath (nameOf (string.popFileFromAddress(adrTool)^))) if not table.inGuestDatabase(adrTool) //test to ensure tool is frontmost. dialog.alert ("The frontmost window is not a tool.") break else if not isTool endsWith ".root" dialog.alert ("The frontmost window is not a tool.") break local (toolName = file.fileFromPath(string.popSuffix(adrTool))) local (adrCF = adrTool+"."+toolName+"Suite.codeFreshener") if (dialog.yesNo ("Do you really want to uninstall the codeFreshener scripts from the \"" + isTool + "\" Tool?")) bundle //uninstall try{delete (adrCF)} local (adrSuite = adrTool + "." + toolName + "Suite") local (firstUpperName = string.upper (toolName[1]) + string.mid (toolName, 2, infinity)) target.set (@adrSuite^.menu) menu.deleteMenuCommand (@adrSuite^.menu, firstUpperName, "Refresh Code...") try {Frontier.tools.commands.reInstallFrontTool ()} Va3F  + 3? DP Ua u codeFreshenertinittinstalltmaint>menutIgstatusCenterMessagetI uninstalltJoVerdana a*ʺa1  LANDmac This script runs in its own thread installCodeFreshenerSuite.init() installCodeFreshenerThread.enabled = false P.a*a8 ctenabledscripttPVVerdana 2b>tArial FF2LANDmac on finalFilter (pta) pta^.renderedText = string.replace (pta^.renderedText, "[[title]]", "") return (true) ����������������������������� ���-����Geneva���������������������������� ��������������Eu`Q�������2LAND������mac ������������on firstFilter (adrPageTable) return (true) �����������������������*��[����Geneva���������������������������� ��������������Eu7a���y���L�3*lLAND������mac ������������on pageFilter (pta) if typeOf (pta^.template) == outlineType or typeOf (pta^.template) == wpTextType table.assign (@pta^.template, string (pta^.template)) if typeOf (pta^.template) == stringType and not pta^.indirectTemplate pta^.template = string.replace (pta^.template, "<title>", "[[title]]") html.addPageToGlossary (pta) return (true) �����������������������������������������������y���.���EF�������� ���� ��� ����$���0 ����; finalFilter������R firstFilter������S pagefilter������TJ��VGeneva���������������������������� �����������P�E��$����������������������������P�������L������7�������� ����url���&http://127.0.0.1/installCodeFreshener/���P���`�������\���$���ss�������� ���� ���" ����'linetext���Install codeFreshenerpath��� index.wsf���`����������@����������s�������� ����Install codeFreshener������W��VArial����������������������������� ����������������������������������������������������������W����������������������space���/GIFfGIF89a�������!����,�������D�;��VArial����������������������������� ������������������������������������������������������������V��������������� ������� �������"�������+ ����0���: ����C���L ����Q���[ ����aalink���008000bgcolor���FFFFFFflRenderlink���0000FFspaceGif���spacetext���000000vlink���800080��VArial����������������������������� ��������������������������������������������������n�����������������8>������VArial����������������������������� ������������������������������������������������n��������������)����Verdana��������������������������� ��������������񹺥��� ���cqLAND������mac ������������return(installCodeFreshenerSuite.main()) ����������@����������V���79�������� ���� ��� �������* ����4���@ ����H���T ����[���g ����n���z ����#filters����t��VS#ftpSite����t��W2 #glossary����t��W#images����t��X#prefs����t��Y]#tools����t��Zindex����t��[��VVerdana��������������������������� ������������??8������������������������@�����������L���a8��������������� ����"���. ����G���S ����m���y ������� ����#enabledinstallCodeFreshenerData�������XinstallCodeFreshenerInfo������installCodeFreshenerSuite������OinstallCodeFreshenerThread������QinstallCodeFreshenerWebsite������[��V Lucida Grande��������������������������������J�2��m �����������������������������Verdana��������������������������� ��������������a3v�����'�LAND������mac ������������#enabled installCodeFreshenerData installCodeFreshenerInfo installCodeFreshenerSuite codeFreshener loadNewCode refreshCode refreshCodeMenu releaseNewCode init install main menu statusCenterMessage uninstall installCodeFreshenerThread installCodeFreshenerWebsite ������II�������������������II������������������II������������������II������������������II�������������������I(��������������������I(��������������������I(��������������������I(��������������������II��������������������II��������������������II��������������������II��������������������II��������������������II�������������������II������������������II������������������������]@x Lucida Grande���������������������� ���������������� Lucida Grande���������������������� �����������������J��Geneva����������������������������� ����������������^} Lucida Grande���������������������� ����������������mn Lucida Grande���������������������� ���������������� Lucida Grande���������������������� ��������������������������������������������������������������������������������