You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: creedon <icr...@us...> - 2005-12-31 20:23:10
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Mac In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22788 Modified Files: SHELL.R Log Message: more tweaks for display of menu items Index: SHELL.R =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Mac/SHELL.R,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SHELL.R 30 Dec 2005 22:48:53 -0000 1.11 --- SHELL.R 31 Dec 2005 20:23:02 -0000 1.12 *************** *** 494,498 **** { /* array: 4 elements */ /* [1] */ ! "Find", noIcon, "F", noMark, plain, /* [2] */ "Replace", noIcon, noKey, noMark, plain, --- 494,498 ---- { /* array: 4 elements */ /* [1] */ ! "Find...", noIcon, "F", noMark, plain, /* [2] */ "Replace", noIcon, noKey, noMark, plain, |
|
From: creedon <icr...@us...> - 2005-12-31 20:20:55
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22254 Modified Files: shellmenu.c Log Message: for host databases that don't have a Frontier.tools table, provide some of the basic file commands so that folks can work with databases Index: shellmenu.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellmenu.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** shellmenu.c 1 Nov 2005 19:11:57 -0000 1.7 --- shellmenu.c 31 Dec 2005 20:20:47 -0000 1.8 *************** *** 55,58 **** --- 55,59 ---- #include "tablestructure.h" #include "ops.h" /* 2005-09-25 creedon */ + #include "langinternal.h" /* 2005-12-27 creedon */ *************** *** 1469,1477 **** /* 2005-09-25 creedon: changed so that all targets can call scripts for some file/edit menu commands added open recent menu ! 7.0d6 PBS: With Pike's now-standard File menu, it's necessary to use ! kernel routines for New and Open. Run scripts in Pike for everything else. 5/19/93 dmb: closefunc uses getfrontwindow, not shellwindow --- 1470,1480 ---- /* + 2005-12-31 creedon: for host databases that don't have a Frontier.tools table, provide some of the basic file commands so that folks can work + with databases + 2005-09-25 creedon: changed so that all targets can call scripts for some file/edit menu commands added open recent menu ! 7.0d6 PBS: With Pike's now-standard File menu, it's necessary to use kernel routines for New and Open. Run scripts in Pike for everything else. 5/19/93 dmb: closefunc uses getfrontwindow, not shellwindow *************** *** 1550,1557 **** boolean flkernelhandledcommand = false, flfoundrootwindow = false; WindowPtr w = shellwindow; Handle hdata; hdlwindowinfo hinfo; ! if (w == nil) { flfoundrootwindow = ccfindrootwindow (&hinfo); --- 1553,1561 ---- boolean flkernelhandledcommand = false, flfoundrootwindow = false; + WindowPtr w = shellwindow; Handle hdata; hdlwindowinfo hinfo; ! if (w == nil) { flfoundrootwindow = ccfindrootwindow (&hinfo); *************** *** 1563,1589 **** case closeitem: /* possibly close an Error Info window */ ! if (shellfindwindow (idlangerrorconfig, &w, &hinfo, &hdata)) { /* is there an Error Info window? */ ! if (w == getfrontwindow ()) { /* is the Error Info window in front? */ shellclose (w, true); /* close the Error Info window */ ! flkernelhandledcommand = true; /* the kernel handled the command */ } /* if */ } /* if */ ! break; ! ! /* case closeitem: ! if (keyboardstatus.floptionkey) ! shellcloseall (w, true); ! else ! shellclose (getfrontwindow (), true); ! ! flkernelhandledcommand = true; ! ! break; */ ! case quititem: --- 1567,1583 ---- case closeitem: /* possibly close an Error Info window */ ! if (shellfindwindow (idlangerrorconfig, &w, &hinfo, &hdata)) { /* is there an Error Info window? */ ! if (w == getfrontwindow ()) { /* is the Error Info window in front? */ shellclose (w, true); /* close the Error Info window */ ! flkernelhandledcommand = true; /* the kernel handled the command */ } /* if */ } /* if */ ! break; ! case quititem: *************** *** 1597,1601 **** #ifndef PIKE ! case newitem: shellnew (); --- 1591,1595 ---- #ifndef PIKE ! case newitem: shellnew (); *************** *** 1604,1608 **** break; ! case pagesetupitem: shellpagesetup (); --- 1598,1602 ---- break; ! case pagesetupitem: shellpagesetup (); *************** *** 1618,1622 **** break; ! case saverunnableitem: shellsaveas (w, nil, true); --- 1612,1616 ---- break; ! case saverunnableitem: shellsaveas (w, nil, true); *************** *** 1625,1637 **** break; ! #endif ! } /*switch*/ ! ! if (!flkernelhandledcommand) /*Run the script if special cases weren't handled above.*/ ! ! runfilemenuscript (iditem); ! break; /* file menu */ } --- 1619,1682 ---- break; ! #endif ! } /*switch*/ ! ! if (!flkernelhandledcommand) { /*Run the script if special cases weren't handled above. */ ! ! #ifndef PIKE ! ! bigstring bs; ! boolean flrunfilemenuscript = langrunstringnoerror ("\x2C" "Frontier.tools.windowTypes.runFileMenuScript", bs); ! ! if (flrunfilemenuscript) ! ! #endif ! ! runfilemenuscript (iditem); ! ! #ifndef PIKE ! ! else { /* if the script is not defined then we try to do some menu items without the script */ ! ! switch (iditem) { ! ! case openitem: ! shellopen (); ! ! break; ! ! case closeitem: ! if (keyboardstatus.floptionkey) ! shellcloseall (w, true); ! else ! shellclose (getfrontwindow (), true); ! ! break; ! ! case saveitem: ! shellsave (w); ! ! break; ! ! case saveasitem: ! shellsaveas (w, nil, false); ! ! break; ! ! case revertitem: ! shellrevert (w, true); ! ! break; ! ! } /*switch*/ ! ! } /* else */ ! ! } ! ! #endif ! break; /* file menu */ } *************** *** 2013,2022 **** /* ! 2005-09-14 creedon: changed name from pikerunfilemenuscript to runfilemenuscript, all targets can now run a script associated with some of the file menu commands - 6.2a2 AR: Call the pike.runFileMenuScript script to eventually run the - script associated with the current menu command. - 7.1b4 PBS: get script string from resource, don't hard-code. */ --- 2058,2067 ---- /* ! 2005-09-14 creedon: changed name from pikerunfilemenuscript to runfilemenuscript, all targets can now run a script associated with some of ! the file menu commands 7.1b4 PBS: get script string from resource, don't hard-code. + + 6.2a2 AR: Call the pike.runFileMenuScript script to eventually run the script associated with the current menu command. */ |
|
From: creedon <icr...@us...> - 2005-12-30 22:49:04
|
Update of /cvsroot/frontierkernel/Frontier/Common/resources/Mac In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27037 Modified Files: SHELL.R Log Message: for Mac OS, show command key equivalents for the style menu items that support them, see http://sourceforge.net/tracker/index.php?func=detail&aid=1392455&group_id=120666&atid=687801 Index: SHELL.R =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/resources/Mac/SHELL.R,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SHELL.R 1 Nov 2005 19:11:52 -0000 1.10 --- SHELL.R 30 Dec 2005 22:48:53 -0000 1.11 *************** *** 391,403 **** "-", noIcon, noKey, noMark, plain, /* [3] */ ! "Bold", noIcon, noKey, noMark, 1, /* [4] */ ! "Italic", noIcon, noKey, noMark, 2, /* [5] */ ! "Underline", noIcon, noKey, noMark, 4, /* [6] */ ! "Outline", noIcon, noKey, noMark, 8, /* [7] */ ! "Shadow", noIcon, noKey, noMark, 16, /* [8] */ "Superscript", noIcon, noKey, noMark, plain, --- 391,403 ---- "-", noIcon, noKey, noMark, plain, /* [3] */ ! "Bold", noIcon, "B", noMark, 1, /* [4] */ ! "Italic", noIcon, "I", noMark, 2, /* [5] */ ! "Underline", noIcon, "U", noMark, 4, /* [6] */ ! "Outline", noIcon, "O", noMark, 8, /* [7] */ ! "Shadow", noIcon, "S", noMark, 16, /* [8] */ "Superscript", noIcon, noKey, noMark, plain, *************** *** 604,607 **** --- 604,635 ---- }; + resource 'xmnu' (129, "Style") { + versionZero + { + { + /* array ItemExtensions: 9 elements */ + /* [1] */ + skipItem {}, + /* [2] */ + skipItem {}, + /* [3] */ + dataItem {0, kMenuShiftModifier, currScript, 0, 0, noHierID, sysFont, naturalGlyph}, + /* [4] */ + dataItem {0, kMenuShiftModifier, currScript, 0, 0, noHierID, sysFont, naturalGlyph}, + /* [5] */ + dataItem {0, kMenuShiftModifier, currScript, 0, 0, noHierID, sysFont, naturalGlyph}, + /* [6] */ + dataItem {0, kMenuShiftModifier, currScript, 0, 0, noHierID, sysFont, naturalGlyph}, + /* [7] */ + dataItem {0, kMenuShiftModifier, currScript, 0, 0, noHierID, sysFont, naturalGlyph}, + /* [8] */ + skipItem {}, + /* [9] */ + skipItem {} + } + } + }; + + resource 'STR#' (129, "Defaults", purgeable) { { /* array StringArray: 6 elements */ |
|
From: creedon <icr...@us...> - 2005-12-30 00:03:56
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/file In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1618 Modified Files: getSpecialFolderPath Log Message: added specialfolder for "application support" and "current user" reworked not to use getUserFolder Index: getSpecialFolderPath =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/file/getSpecialFolderPath,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** getSpecialFolderPath 5 Sep 2005 16:19:45 -0000 1.3 --- getSpecialFolderPath 30 Dec 2005 00:03:48 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.file.getSpecialFolderPath ! on getSpecialFolderPath (vol, specialfolder, create) { ÇChanges Ç8/25/05; 6:13:22 PM by TAC Çon Mac OS X for trash case, folder is .Trash Ç8/3/05; 3:20:59 PM by TAC Çadded Documents folder case for Mac OS Carbon, suggest by Sean Elfstrom from a doc server discussion group message Ç8/26/01; 11:30:11 PM by JES ÇAdded support for special folders used for MacOS X. Ç5.0.1 dmb: added "temporary item" support for Windows Çmaps to the Temp directory on kernelcall (vol, specialfolder, create) { kernel (file.getSpecialFolderPath)}; case sys.os () { "MacOS" { if system.environment.isCarbon { if vol == "" { vol = file.getSystemDisk ()}; local (pc = file.getPathChar ()); local (folder); on getUserFolder () { local (username = string.nthField (sys.unixShellCommand ("who am i"), ' ', 1)); return (vol + "Users" + pc + username + pc)}; case string.lower (specialfolder) { "apple menu items" { scriptError ("Can't get the path to the Apple Menu Items folder because Mac OS X does not have an Apple Menu Items folder.")}; "applications" { folder = vol + "Applications" + pc}; "desktop folder" { folder = getUserFolder () + "Desktop" + pc}; "documents" { folder = getUserFolder () + "Documents" + pc}; "extensions" { folder = vol + "System" + pc + "Extensions" + pc}; "favorites" { folder = getUserFolder () + "Library" + pc + "Favorites" + pc}; "fontcollections" { folder = getUserFolder () + "Library" + pc + "FontCollections" + pc}; "fonts" { folder = getUserFolder () + "Library" + pc + "Fonts" + pc}; "preferences" { folder = getUserFolder () + "Library" + pc + "Preferences" + pc}; "startup items"; "startupitems" { scriptError ("Can't get the path to the Startup Items folder because Mac OS X does not have a Startup Items folder.")}; "system"; "system folder" { folder = vol + "System" + pc}; "temp"; "temporary items" { folder = vol + "Temporary Items" + pc}; "trash" { folder = getUserFolder () + ".Trash" + pc}}; if create { file.sureFilePath (folder); file.sureFolder (folder)}; return (filespec (folder))} else { //Classic kernelcall (vol, specialfolder, create)}}; "Win95"; "WinNT" { ÇMonday, December 8, 1997 at 3:59:21 PM by DW Ç"Desktop" -- Windows desktop - virtual folder at the root of the name space. Ç"DesktopDirectory" -- File system directory used to physically store file Çobjects on the desktop (not to be confused with the desktop folder itself). Ç"Fonts" -- Virtual folder containing fonts. Ç"NetHood" -- File system directory containing objects that appear in the network neighborhood. Ç"Personal" -- File system directory that serves as a common respository for documents Ç"Programs" -- File system directory that contains the user's program groups (which are also file system directories). Ç"Recent" -- File system directory that contains the user's most recently used documents. Ç"SendTo" -- File system directory that contains Send To menu items. Ç"StartMenu" -- File system directory containing Start menu items. Ç"StartUp" -- File system directory that corresponds to the user's Startup program group. Ç"Templates" -- File system directory that serves as a common repository for document templates. Ç"Windows" -- The Windows directory is the directory where an application Çshould store initialization and help files. If the user is running a shared Çversion of Windows, the Windows directory is guaranteed to be private for Çeach user. Ç"System" -- Retrieves the path of the Windows system directory. ÇThe system directory contains such files as Windows libraries, drivers, and font files case string.lower (specialfolder) { "preferences" { return (file.getPrefsSubFolder (specialfolder))}; "temp" { local (tempfolder); if vol == "" { vol = file.getSystemDisk ()}; vol = vol [1] + ":\\"; tempfolder = vol + "Temp\\"; if create and not file.exists (tempfolder) { try {file.sureFolder (tempfolder)}}; return (tempfolder)}} else { try { return (kernelcall (vol, specialfolder, create))} else { local (errormessage); if string.lower (string.firstword (specialfolder)) == "temporary" { local (folder); if vol == "" { vol = file.getSystemDisk ()}; folder = vol + "\\Temp\\"; if create { file.sureFolder (folder)}; return (true)}; errormessage = "Couldn't get the folder path because \"" + specialfolder; errormessage = errormessage + "\" is not a special folder name."; return (scriptError (errormessage))}}}}}; Çbundle //testing Çfile.getSpecialFolderPath ("", "documents", true) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.file.getSpecialFolderPath ! on getSpecialFolderPath (vol, specialfolder, create) { ÇChanges Ç12/29/05; 11:38:18 AM by TAC Çadded specialfolder for "application support" and "current user" Çreworked not to use getUserFolder Ç8/25/05; 6:13:22 PM by TAC Çon Mac OS X for trash case, folder is .Trash Ç8/3/05; 3:20:59 PM by TAC Çadded Documents folder case for Mac OS Carbon, suggest by Sean Elfstrom from a doc server discussion group message Ç8/26/01; 11:30:11 PM by JES ÇAdded support for special folders used for MacOS X. Ç5.0.1 dmb: added "temporary item" support for Windows Çmaps to the Temp directory on kernelcall (vol, specialfolder, create) { kernel (file.getSpecialFolderPath)}; case sys.os () { "MacOS" { local (flMacOsX = system.environment.osMajorVersion >= 10); Çon getUserFolder () Çlocal (username = string.nthField (sys.unixShellCommand ("who am i"), ' ', 1)) Çreturn (vol + "Users" + pc + username + pc) if vol == "" { vol = file.getSystemDisk ()}; case string.lower (specialfolder) { Ç"fontcollections" "desktop folder"; "fonts"; "preferences"; "temporary items"; "shared"; "trash" { vol = ""}; // on Mac OS X setting this to empty will make the kernel check the user domain "apple menu items" { if flMacOsX { scriptError ("Can't get the path to the Apple Menu Items folder because Mac OS X does not have an Apple Menu Items folder.")}}; "control panels" { if flMacOsX { scriptError ("Can't get the path to the Apple Menu Items folder because Mac OS X does not have an Apple Menu Items folder.")}}; "extensions" { if flMacOsX { scriptError ("Can't get the path to the Extensions folder because Mac OS X does not have an Apple Menu Items folder.")}}; "printmonitor documents" { if flMacOsX { scriptError ("Can't get the path to the PrintMonitor Documents folder because Mac OS X does not have an PrintMonitor Documents folder.")}}; "startup items" { if flMacOsX { scriptError ("Can't get the path to the Startup Items folder because Mac OS X does not have an Startup Items folder.")}}; // this isn't really true, there is one at /Library/StartupItems, this could be made to work with a little scripting using "current user" "application support" { specialfolder = 'asup'; vol = ""}; "applications" { specialfolder = 'apps'}; "current user" { specialfolder = 'cusr'; vol = ""}; "documents" { specialfolder = 'docs'; vol = ""}; "favorites" { specialfolder = 'favs'; vol = ""}; "system"; "system folder" { specialfolder = 'macs'}}; kernelcall (vol, specialfolder, create)}; "Win95"; "WinNT" { ÇMonday, December 8, 1997 at 3:59:21 PM by DW Ç"Desktop" -- Windows desktop - virtual folder at the root of the name space. Ç"DesktopDirectory" -- File system directory used to physically store file Çobjects on the desktop (not to be confused with the desktop folder itself). Ç"Fonts" -- Virtual folder containing fonts. Ç"NetHood" -- File system directory containing objects that appear in the network neighborhood. Ç"Personal" -- File system directory that serves as a common respository for documents Ç"Programs" -- File system directory that contains the user's program groups (which are also file system directories). Ç"Recent" -- File system directory that contains the user's most recently used documents. Ç"SendTo" -- File system directory that contains Send To menu items. Ç"StartMenu" -- File system directory containing Start menu items. Ç"StartUp" -- File system directory that corresponds to the user's Startup program group. Ç"Templates" -- File system directory that serves as a common repository for document templates. Ç"Windows" -- The Windows directory is the directory where an application Çshould store initialization and help files. If the user is running a shared Çversion of Windows, the Windows directory is guaranteed to be private for Çeach user. Ç"System" -- Retrieves the path of the Windows system directory. ÇThe system directory contains such files as Windows libraries, drivers, and font files case string.lower (specialfolder) { "preferences" { return (file.getPrefsSubFolder (specialfolder))}; "temp" { local (tempfolder); if vol == "" { vol = file.getSystemDisk ()}; vol = vol [1] + ":\\"; tempfolder = vol + "Temp\\"; if create and not file.exists (tempfolder) { try {file.sureFolder (tempfolder)}}; return (tempfolder)}} else { try { return (kernelcall (vol, specialfolder, create))} else { local (errormessage); if string.lower (string.firstword (specialfolder)) == "temporary" { local (folder); if vol == "" { vol = file.getSystemDisk ()}; folder = vol + "\\Temp\\"; if create { file.sureFolder (folder)}; return (true)}; errormessage = "Couldn't get the folder path because \"" + specialfolder + "\" is not a special folder name."; return (scriptError (errormessage))}}}}}; Çbundle // testing Çwindow.msg (getSpecialFolderPath ("", "current user", false)) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-29 02:26:09
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31281 Modified Files: shellkb.c Log Message: fix for command-option-u not finding its item in its menubar, if option key is down bail out of shellfilterfontkey function, see < http://sourceforge.net/tracker/index.php?func=detail&aid=1391832&group_id=120666&atid=687798 > Index: shellkb.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellkb.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** shellkb.c 28 Dec 2005 03:06:39 -0000 1.6 --- shellkb.c 29 Dec 2005 02:26:01 -0000 1.7 *************** *** 49,52 **** --- 49,54 ---- /* + 2005-12-28 lawton, creedon : if option key is down bail out, allows command-option-u to find its item in its menubar + filter cmd-shift-B,I,U,O,S to a style-menu item. */ *************** *** 55,59 **** register short ixmenu; ! if ((!keyboardstatus.flcmdkey) || (!keyboardstatus.flshiftkey)) return (false); --- 57,61 ---- register short ixmenu; ! if ((!keyboardstatus.flcmdkey) || (!keyboardstatus.flshiftkey) || keyboardstatus.floptionkey) return (false); |
|
From: creedon <icr...@us...> - 2005-12-28 03:06:47
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8836 Modified Files: shellkb.c Log Message: rollback to previous state, tried to use MenuEvent in place of MenuKey. Unlike MenuKey, MenuEvent doesn't just deal with character equivalents, it deals with the character and modifiers. So when command-option-\ is pressed for example, it wasn't finding the menu and item ids for that command. MenuEvent is the current recommended function but unless a workaround can be found... Index: shellkb.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/shellkb.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** shellkb.c 1 Oct 2005 17:47:02 -0000 1.5 --- shellkb.c 28 Dec 2005 03:06:39 -0000 1.6 *************** *** 317,321 **** shellupdatemenus (); /*be sure the menus are properly checked and highlighted*/ ! if (!shellhandlemenu (MenuEvent (&shellevent))) { /* cmd-key not consumed by menubar */ /* 2005-10-01 creedon - change MenuKey to MenuEvent, allows OS X Keyboard Shortcuts to get through */ // cmd-key not consumed by menubar if (fl) --- 317,321 ---- shellupdatemenus (); /*be sure the menus are properly checked and highlighted*/ ! if (!shellhandlemenu (MenuKey (chkb))) { /*cmd-key not consumed by menubar*/ if (fl) |
|
From: creedon <icr...@us...> - 2005-12-27 00:55:49
|
Update of /cvsroot/frontierkernel/Frontier/Common/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13727 Modified Files: fileverbs.c Log Message: commented out param count check for getnthresinfoverb function to correct params count errors Index: fileverbs.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/Common/source/fileverbs.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** fileverbs.c 20 Dec 2005 22:25:50 -0000 1.8 --- fileverbs.c 27 Dec 2005 00:55:32 -0000 1.9 *************** *** 1148,1151 **** --- 1148,1153 ---- /* + 2005-12-26 creedon: commented out param count check + 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile *************** *** 1163,1168 **** tyvaluerecord val; ! if (!langcheckparamcount (hparam1, 6)) ! return (false); if (!getpathvalue (hparam1, 1, &fs)) --- 1165,1170 ---- tyvaluerecord val; ! /* if (!langcheckparamcount (hparam1, 5)) ! return (false); */ if (!getpathvalue (hparam1, 1, &fs)) |
|
From: creedon <icr...@us...> - 2005-12-26 18:22:11
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/tools/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13707 Removed Files: flInstalled Log Message: removed, created and set by tools.init --- flInstalled DELETED --- |
|
From: creedon <icr...@us...> - 2005-12-25 02:03:49
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsMisc/howToSubscribe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5024 Modified Files: install Log Message: the howToSubscribe table is obsolete but kept for historical purposes, subscribe is now handled by the #startup script Index: install =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsMisc/howToSubscribe/install,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** install 2 Apr 2005 23:09:50 -0000 1.1.1.1 --- install 25 Dec 2005 02:03:41 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:prefsMisc.howToSubscribe.install ! Ç9/18/99; 2:21:32 PM by DW ÇTo subscribe, first run this script, then bring prefs.root to the front, and choose Update prefs.root from the Main menu. It's the first item. Ç10/30/99; 12:39:39 PM by PBS ÇThe canonical copy of prefs.root has been moved to updates.userland.com. It's a good idea to run this script again. local (adrtable = parentof (this^)); user.rootupdates.servers.prefs = adrtable^.prefs \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:prefsMisc.howToSubscribe.install ! ÇChanges Ç12/24/05; 12:57:19 PM by TAC Çthis is obsolete but kept for historical purposes, subscribe is now handled buy the #startup script Ç10/30/99; 12:39:39 PM by PBS ÇThe canonical copy of prefs.root has been moved to updates.userland.com. It's a good idea to run this script again. Ç9/18/99; 2:21:32 PM by DW ÇTo subscribe, first run this script, then bring prefs.root to the front, and choose Update prefs.root from the Main menu. It's the first item. return (false); local (adrtable = parentof (this^)); user.rootupdates.servers.prefs = adrtable^.prefs \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 02:03:45
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsMisc/howToSubscribe/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5004 Modified Files: serialNum method server Log Message: the howToSubscribe table is obsolete but kept for historical purposes, subscribe is now handled by the #startup script Index: serialNum =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsMisc/howToSubscribe/prefs/serialNum,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** serialNum 2 Apr 2005 23:09:50 -0000 1.1.1.1 --- serialNum 25 Dec 2005 02:03:36 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:long:prefsMisc.howToSubscribe.prefs.serialNum ! 1 \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:long:prefsMisc.howToSubscribe.prefs.serialNum ! 0 \ No newline at end of file Index: method =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsMisc/howToSubscribe/prefs/method,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** method 2 Apr 2005 23:09:50 -0000 1.1.1.1 --- method 25 Dec 2005 02:03:36 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:TEXT:prefsMisc.howToSubscribe.prefs.method ! nirvanaServer.subscriptions.update \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:TEXT:prefsMisc.howToSubscribe.prefs.method ! mainResponder.subscriptions.update \ No newline at end of file Index: server =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsMisc/howToSubscribe/prefs/server,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** server 2 Apr 2005 23:09:50 -0000 1.1.1.1 --- server 25 Dec 2005 02:03:36 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:TEXT:prefsMisc.howToSubscribe.prefs.server - updates.userland.com \ No newline at end of file --- 1,2 ---- |
|
From: creedon <icr...@us...> - 2005-12-25 02:01:08
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4625 Added Files: startup Log Message: created --- NEW FILE: startup --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-12-25 02:00:18
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4372 Added Files: 23startup Log Message: created --- NEW FILE: 23startup --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-12-25 01:52:04
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3463 Modified Files: listSubscribableDatabases Log Message: added support to display host database (@root) as subscribable added support for relative paths Index: listSubscribableDatabases =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs/listSubscribableDatabases,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** listSubscribableDatabases 26 Mar 2005 21:45:15 -0000 1.1.1.1 --- listSubscribableDatabases 25 Dec 2005 01:51:54 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.listSubscribableDatabases ! on listSubscribableDatabases () { ÇChanges Ç9/7/02; 10:22:30 PM by JES ÇBe more tolerant about which databases are allowed to be subscribed. Ç8/26/02; 5:52:49 PM by JES ÇCreated. Lists databases on this server, with checkboxes for whether or not the database should be subscribable. local (pta = html.getPageTableAddress ()); local (bgcolors = {pta^.trbg1, pta^.trbg2}); on findInUserDatabases (f) { local (lowerpath = string.lower (f)); local (adrtable); for adrtable in @user.databases { if string.lower (adrtable^.f) == lowerpath { return (adrtable)}}; return (@user.databases.[file.fileFromPath (f)] )}; local (htmltext); on add (s) { htmltext = htmltext + (s + "\r");}; bundle { //list the databases local (t); new (tableType, @t); bundle { //build sorted table of databases local (pc = file.getPathChar ()); on isSubscribable (f) { local (lowerpath = string.lower (f)); local (adrtable); for adrtable in @user.databases { try { if string.lower (adrtable^.f) == lowerpath { return (adrtable^.supportsSubscribe)}}}; return (false)}; on skipDatabase (f) { bundle { //skip all databases that are getting updates from elsewhere local (lowerfname = string.lower (file.fileFromPath (f))); local (adrtable); for adrtable in @user.rootUpdates.servers { try { if string.lower (adrtable^.dbname) == lowerfname { if tcp.equalNames (tcp.dns.getMyDottedId (), adrtable^.server) { return (false)}; return (true)}}}}; bundle { //skip other canonical databases local (lowerpath = string.lower (f)); local (appFolder = Frontier.getSubFolder ("apps")); local (logFolder = Frontier.getSubFolder ("ops") + "logs" + pc); local (opsFolder = Frontier.getSubFolder ("ops")); local (datafilesFolder = Frontier.getSubFolder ("ops") + "datafiles" + pc); on checkOne (path) { if string.lower (path) == lowerpath { return (true)}; return (false)}; if checkOne (appFolder + "config.root") {return (true)}; if checkOne (datafilesFolder + "mainResponderSearchQueue.root") {return (true)}; if checkOne (opsFolder + "members.root") {return (true)}; if checkOne (opsFolder + "discuss.root") {return (true)}; if lowerpath beginsWith string.lower (logfolder) {return (true)}}; return (false)}; local (adr); for adr in @system.compiler.files { local (f = nameOf (adr^)); if skipDatabase (f) { continue}; local (dbname = file.fileFromPath (f)); local (dbsize = file.size (f)); local (modified = file.modified (f)); local (folder = file.folderFromPath (f)); local (foldername = file.fileFromPath (folder)); local (adrdb = @[f] ); local (dbtables = sizeOf (adrdb^)); local (adrfolder = @t.[foldername]); if not defined (adrfolder^) { new (tableType, adrfolder)}; local (adrdbinfo = @adrfolder^.[dbname]); new (tableType, adrdbinfo); if defined (adrdb^.["#changes"]) { adrdbinfo^.changes = sizeOf (adrdb^.["#changes"])} else { adrdbinfo^.changes = 0}; adrdbinfo^.flSubscribable = isSubscribable (f); adrdbinfo^.f = f}}; add ("<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">"); bundle { //headers add ("<tr><td> </td><td><b>Folder</b></td><td><b>Database</b></td><td align=\"right\"><b>Changes</b></td></tr>")}; local (ct = 0, adrfolder, adrdb); for adrfolder in @t { local (folder = nameOf (adrfolder^) + " "); for adrdb in adrfolder { local (dbname = nameOf (adrdb^)); if pta^.method == "POST" { //set up this db if defined (pta^.postArgs.[string.urlEncode (adrdb^.f)] ) { local (adrinfo = findInUserDatabases (adrdb^.f)); if not defined (adrinfo^) { //init user.databases sub-table new (tableType, adrinfo); adrinfo^.f = adrdb^.f; adrinfo^.openOnStartup = true; adrinfo^.runStartupScript = false}; adrinfo^.supportsSubscribe = true; if not defined ([adrdb^.f].["#changes"]) { new (tableType, @[adrdb^.f].["#changes"])}; adrdb^.flsubscribable = true} else { //turn off subscriptions for this database local (adrinfo = findInUserDatabases (adrdb^.f)); if defined (adrinfo^) { adrinfo^.supportsSubscribe = false; adrdb^.flsubscribable = false}}}; add ("<tr bgcolor=\"" + bgcolors[(ct++% 2) + 1] + "\">"); bundle { //checkbox local (checked = ""); if adrdb^.flsubscribable { checked = " checked"}; add ("<td> <input type=\"checkbox\" name=\"" + string.urlEncode (adrdb^.f) + "\"" + checked + " /> </td>")}; add ("<td class=\"small\">" + folder + "</td>"); folder = ""; //only display the folder once add ("<td class=\"small\">" + dbname + "</td>"); add ("<td class=\"small\" align=\"right\">" + adrdb^.changes + " </td>"); add ("</tr>")}; };Çadd ("<tr><td> </td></tr>"); ct = 0 add ("</table>")}; return (htmltext)}; Çbundle //test code Çhtml.setPageTableAddress (@workspace.pt) ÇlistSubscribableDatabases () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.listSubscribableDatabases ! on listSubscribableDatabases () { ÇChanges Ç12/24/05; 2:56:15 PM by TAC Çadded support to display host database (@root) as subscribable Çadded support for relative paths Ç9/7/02; 10:22:30 PM by JES ÇBe more tolerant about which databases are allowed to be subscribed. Ç8/26/02; 5:52:49 PM by JES ÇCreated. Lists databases on this server, with checkboxes for whether or not the database should be subscribable. local (pta = html.getPageTableAddress ()); local (bgcolors = {pta^.trbg1, pta^.trbg2}); on findInUserDatabases (f) { local (lowerpath = string.lower (f)); local (adrTable); for adrTable in @user.databases { if string.lower (adrTable^.f) == lowerpath { return (adrTable)}}; return (@user.databases.[file.fileFromPath (f)] )}; local (htmltext); on add (s) { htmltext = htmltext + (s + "\r");}; bundle { //list the databases local (t); new (tableType, @t); bundle { //build sorted table of databases local (pc = file.getPathChar ()); on isSubscribable (f) { local (lowerpath = string.lower (f)); local (adrTable); for adrTable in @user.databases { try { if string.lower (fileSpec (adrTable^.f)) == lowerpath { return (adrTable^.supportsSubscribe)}}}; return (false)}; on skipDatabase (f) { bundle { //skip all databases that are getting updates from elsewhere local (lowerfname = string.lower (file.fileFromPath (f))); local (adrTable); for adrTable in @user.rootUpdates.servers { try { if string.lower (adrTable^.dbname) == lowerfname { if tcp.equalNames (tcp.dns.getMyDottedId (), adrTable^.server) { return (false)}; return (true)}}}}; bundle { //skip other canonical databases local (lowerpath = string.lower (f)); local (appFolder = Frontier.getSubFolder ("apps")); local (logFolder = Frontier.getSubFolder ("ops") + "logs" + pc); local (opsFolder = Frontier.getSubFolder ("ops")); local (datafilesFolder = Frontier.getSubFolder ("ops") + "datafiles" + pc); on checkOne (path) { if string.lower (path) == lowerpath { return (true)}; return (false)}; if checkOne (appFolder + "config.root") {return (true)}; if checkOne (datafilesFolder + "mainResponderSearchQueue.root") {return (true)}; if checkOne (opsFolder + "members.root") {return (true)}; if checkOne (opsFolder + "discuss.root") {return (true)}; if lowerpath beginsWith string.lower (logfolder) {return (true)}}; return (false)}; local (fileList = {}); bundle { // build fileList local (adr); for adr in @system.compiler.files { fileList = fileList + nameOf (adr^)}; if defined (config.mainResponder.prefs.flAddRootToSubscribableDatabasesList) { // add host database (@root) to list if config.mainResponder.prefs.flAddRootToSubscribableDatabasesList { fileList = fileList + window.getFile (@root)}}}; local (f); for f in fileList { if skipDatabase (f) { continue}; local (dbname = file.fileFromPath (f)); local (dbsize = file.size (f)); local (modified = file.modified (f)); local (folder = file.folderFromPath (f)); local (folderName = file.fileFromPath (folder)); local (adrDb); bundle { // host database (@root)? if window.getFile (@root) == f { adrDb = @root; folderName = ":"} else { adrDb = @[f]}}; local (dbtables = sizeOf (adrDb^)); local (adrFolder = @t.[folderName]); if not defined (adrFolder^) { new (tableType, adrFolder)}; local (adrDbInfo = @adrFolder^.[dbname]); new (tableType, adrDbInfo); if defined (adrDb^.["#changes"]) { adrDbInfo^.changes = sizeOf (adrDb^.["#changes"])} else { adrDbInfo^.changes = 0}; adrDbInfo^.flSubscribable = isSubscribable (f); adrDbInfo^.f = f}}; add ("<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">"); bundle { //headers add ("<tr><td> </td><td><b>Folder</b></td><td><b>Database</b></td><td align=\"right\"><b>Changes</b></td></tr>")}; local (ct = 0, adrFolder, adrDb); for adrFolder in @t { local (folder = nameOf (adrFolder^)); if folder == ':' { folder = ""}; folder = folder + " "; for adrDb in adrFolder { local (dbname = nameOf (adrDb^)); if pta^.method == "POST" { //set up this db if defined (pta^.postArgs.[string.urlEncode (adrDb^.f)] ) { local (adrinfo = findInUserDatabases (adrDb^.f)); if not defined (adrinfo^) { //init user.databases sub-table new (tableType, adrinfo); adrinfo^.f = adrDb^.f; adrinfo^.openOnStartup = true; adrinfo^.runStartupScript = false}; adrinfo^.supportsSubscribe = true; bundle { // #changes local (adr); if window.getFile (@root) == adrDb^.f { adr = @root} else { adr = @[adrDb^.f]}; if not defined (adr^.["#changes"]) { new (tableType, @adr^.["#changes"])}}; adrDb^.flsubscribable = true} else { //turn off subscriptions for this database local (adrinfo = findInUserDatabases (adrDb^.f)); if defined (adrinfo^) { adrinfo^.supportsSubscribe = false; adrDb^.flsubscribable = false}}}; add ("<tr bgcolor=\"" + bgcolors[(ct++% 2) + 1] + "\">"); bundle { //checkbox local (checked = ""); if adrDb^.flsubscribable { checked = " checked"}; add ("<td> <input type=\"checkbox\" name=\"" + string.urlEncode (adrDb^.f) + "\"" + checked + " /> </td>")}; add ("<td class=\"small\">" + folder + "</td>"); folder = ""; //only display the folder once add ("<td class=\"small\">" + dbname + "</td>"); add ("<td class=\"small\" align=\"right\">" + adrDb^.changes + " </td>"); add ("</tr>")}; };Çadd ("<tr><td> </td></tr>"); ct = 0 add ("</table>")}; return (htmltext)}; Çbundle // testing Çhtml.setPageTableAddress (@workspace.pt) ÇlistSubscribableDatabases () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:51:18
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/subscriptions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3377 Modified Files: server Log Message: changed local adrGuestDatabase to adrSubscribedDatabase to better describe it function now works with host database (@root), the open source release didn't come with the rpc handler script rootUpdates.public.getUpdate, so I adapted this script to do the job support relative paths in user.rootUpdates.servers.x.f no longer need to pop the file off an address as what is now stored as a relative address Index: server =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/subscriptions/server,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** server 22 Dec 2005 19:30:30 -0000 1.2 --- server 25 Dec 2005 01:51:07 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.subscriptions.server ! on server (dbname, ipaddress, lastupdate, username, mailaddress, serialnumber) { ÇChanges Ç12/21/05; 10:11:19 PM by TAC Çsupport relative paths in user.rootUpdates.servers.x.f Çno longer need to pop the file off an address as what is now stored as a relative address Ç8/12/04; 3:12:31 AM by JES ÇAdditional logging: Errors are now logged. When an update is successful, ctPartsSent (in the log sub-table) is set to the number of parts sent to the client. Ç12/7/03; 11:52:32 PM by JES ÇAdd callback support. Callbacks are in config.mainResponder.callbacks.subscriptionsServer. They take the same parameters as this RPC handler. If any callback returns false, then an error is generated. Ç11/04/00; 5:55:40 PM by PBS ÇReturn the time on the server of the last update, so clients don't miss updates. ÇReturn new and changed parts of a database since the last update. local (adrtable = log.addToGuestDatabase ("subscriptions")); bundle { //add a record to the subscription log adrtable^.dbname = dbname; adrtable^.ipaddress = ipaddress; adrtable^.lastupdate = lastupdate; adrtable^.username = username; adrtable^.mailaddress = mailaddress; adrtable^.serialnumber = serialnumber}; bundle { //call callbacks local (adrcallbacks = @config.mainResponder.callbacks.subscriptionsServer); if not defined (adrcallbacks^) { new (tableType, adrcallbacks)}; local (adr, ct = sizeOf (adrcallbacks^), i, flSendUpdate = true); for i = 1 to ct { adr = @adrcallbacks^[i]; try { while typeOf (adr^) == addressType { adr = adr^}; if not adr^ (dbname, ipaddress, lastupdate, username, mailaddress, serialnumber) { flSendUpdate = false}}; if not flSendUpdate { scriptError ("Can't update because you are not authorized for updates to this database.")}}}; local (adrdb = @user.databases.[dbname]); if not defined (adrdb^) { adrtable^.error = "The sysop hasn't registered a database named \"" + dbname + "\"."; //02/04/07, 08:22:52 by DAB scriptError ("Can't send you an update because the sysop hasn't registered a database named \"" + dbname + "\".")}; if not (adrdb^.supportsSubscribe) { adrtable^.error = "The database \"" + dbname + "\" doesn't support subscriptions."; //02/04/07, 08:22:48 by DAB scriptError ("Can't send you an update because the database \"" + dbname + "\" doesn't support subscriptions.")}; local (adrGuestDatabase = @[fileSpec (adrdb^.f)]); table.sureDatabaseOpen (adrGuestDatabase); lastupdate = date (lastupdate); //convert from a net-standard-string local (frontierVersion = Frontier.version ()); local (adrchanges = @adrGuestDatabase^.["#changes"]); local (sizechanges = sizeof (adrchanges^)); local (parts); new (tabletype, @parts); parts.serialNum = sizechanges; //it's synthetic! parts.lastUpdateTime = date.netStandardString (clock.now ()); //PBS 11/4/00: save server time on client, to avoid missing updates new (tabletype, @parts.parts); local (i, addedItems = {}); for i = sizechanges downto 1 { local (adrItem = @adrchanges^ [i]); if adrItem^.when < lastupdate { break}; if addedItems contains adrItem^.what { //we've already included this continue}; local (name = "part" + string.padwithzeros (i, 4)); local (adrNewPart = @parts.parts.[name]); new (tabletype, adrNewPart); bundle { //2/14/99; 9:01:26 AM by DW, customized error if object doesn't exist if not defined (adrItem^.what^) { adrtable^.error = "The #changes table in \"" + dbname + "\" on the server says that \"" + adrItem^.what + "\" has changed, but the object isn't in the database."; //02/04/07, 08:22:41 by DAB scriptError ("Can't do the update because the #changes table in \"" + dbname + "\" on the server says that \"" + adrItem^.what + "\" has changed, but the object isn't in the database.")}; adrNewPart^.data = adrItem^.what^}; adrNewPart^.timestamp = adrItem^.when; adrNewPart^.userName = adrItem^.who; adrNewPart^.adr = adrItem^.what; Çbundle //put the relative address into adr field Çlocal (s = string (adrItem^.what)) Çlocal (ix = string.patternMatch ("].", s)) Çs = string.delete (s, 1, ix + 1) ÇadrNewPart^.adr = s wp.newtextobject ("", @adrNewPart^.changes); adrNewPart^.platform = "both"; adrNewPart^.version = frontierVersion; local (bytes); pack (adrNewPart^, @bytes); bytes = base64.encode (bytes, infinity); delete (adrNewPart); adrNewPart^ = bytes; addedItems = addedItems + {adrItem^.what}; sys.systemTask ()}; adrtable^.ctPartsSent = sizeof (addedItems); //02/04/07, 08:22:36 by DAB return (parts)}; Çbundle //test code Çserver ("prefs.root", tcp.dns.getMyDottedId (), clock.now (), "Jake", "ja...@us...", 10) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.subscriptions.server ! on server (dbName, ipAddress, lastUpdate, userName, mailAddress, serialNumber) { ÇChanges Ç12/24/05; 10:39:17 AM by TAC Çchanged local adrGuestDatabase to adrSubscribedDatabase to better describe it function Çnow works with host database (@root), the open source release didn't come with the rpc handler script rootUpdates.public.getUpdate, so I adapted this script to do the job Çnote: the root update server needs to have a table at user.datbases with the name of the host database (i.e. "Frontier.root") with the following items... Çf string: Frontier.root ÇopenOnStartup boolean: false ÇrunStartupScript boolean: false ÇsupportsSubscribe boolean: true Çsupport relative paths in user.rootUpdates.servers.x.f Çno longer need to pop the file off an address as what is now stored as a relative address Ç8/12/04; 3:12:31 AM by JES ÇAdditional logging: Errors are now logged. When an update is successful, ctPartsSent (in the log sub-table) is set to the number of parts sent to the client. Ç12/7/03; 11:52:32 PM by JES ÇAdd callback support. Callbacks are in config.mainResponder.callbacks.subscriptionsServer. They take the same parameters as this RPC handler. If any callback returns false, then an error is generated. Ç11/04/00; 5:55:40 PM by PBS ÇReturn the time on the server of the last update, so clients don't miss updates. ÇReturn new and changed parts of a database since the last update. local (adrTable = log.addToGuestDatabase ("subscriptions")); bundle { //add a record to the subscription log adrTable^.dbName = dbName; adrTable^.ipAddress = ipAddress; adrTable^.lastUpdate = lastUpdate; adrTable^.userName = userName; adrTable^.mailAddress = mailAddress; adrTable^.serialNumber = serialNumber}; bundle { //call callbacks local (adrCallbacks = @config.mainResponder.callbacks.subscriptionsServer); if not defined (adrCallbacks^) { new (tableType, adrCallbacks)}; local (adr, ct = sizeOf (adrCallbacks^), i, flSendUpdate = true); for i = 1 to ct { adr = @adrCallbacks^[i]; try { while typeOf (adr^) == addressType { adr = adr^}; if not adr^ (dbName, ipAddress, lastUpdate, userName, mailAddress, serialNumber) { flSendUpdate = false}}; if not flSendUpdate { scriptError ("Can't update because you are not authorized for updates to this database.")}}}; local (adrDb = @user.databases.[dbName]); if not defined (adrDb^) { adrTable^.error = "The sysop hasn't registered a database named \"" + dbName + "\"."; //02/04/07, 08:22:52 by DAB scriptError ("Can't send you an update because the sysop hasn't registered a database named \"" + dbName + "\".")}; if not (adrDb^.supportsSubscribe) { adrTable^.error = "The database \"" + dbName + "\" doesn't support subscriptions."; //02/04/07, 08:22:48 by DAB scriptError ("Can't send you an update because the database \"" + dbName + "\" doesn't support subscriptions.")}; local (adrSubscribedDatabase, flGuestDatabase = true); if window.getFile (@root) == fileSpec (adrDb^.f) { flGuestDatabase = false; adrSubscribedDatabase = @root} else { adrSubscribedDatabase = @[fileSpec (adrDb^.f)]}; if flGuestDatabase { table.sureDatabaseOpen (adrSubscribedDatabase)}; lastUpdate = date (lastUpdate); //convert from a net-standard-string local (frontierVersion = Frontier.version ()); local (adrChanges = @adrSubscribedDatabase^.["#changes"]); local (sizeChanges = sizeOf (adrChanges^)); local (parts); new (tabletype, @parts); parts.serialNum = sizeChanges; //it's synthetic! parts.lastUpdateTime = date.netStandardString (clock.now ()); //PBS 11/4/00: save server time on client, to avoid missing updates new (tabletype, @parts.parts); local (i, addedItems = {}); for i = sizeChanges downto 1 { local (adrItem = @adrChanges^ [i]); if adrItem^.when < lastUpdate { break}; if addedItems contains adrItem^.what { //we've already included this continue}; local (name = "part" + string.padwithzeros (i, 4)); local (adrNewPart = @parts.parts.[name]); new (tabletype, adrNewPart); bundle { //2/14/99; 9:01:26 AM by DW, customized error if object doesn't exist if not defined (adrItem^.what^) { adrTable^.error = "The #changes table in \"" + dbName + "\" on the server says that \"" + adrItem^.what + "\" has changed, but the object isn't in the database."; //02/04/07, 08:22:41 by DAB scriptError ("Can't do the update because the #changes table in \"" + dbName + "\" on the server says that \"" + adrItem^.what + "\" has changed, but the object isn't in the database.")}; adrNewPart^.data = adrItem^.what^}; adrNewPart^.timeStamp = adrItem^.when; adrNewPart^.userName = adrItem^.who; adrNewPart^.adr = adrItem^.what; Çbundle //put the relative address into adr field Çlocal (s = string (adrItem^.what)) Çlocal (ix = string.patternMatch ("].", s)) Çs = string.delete (s, 1, ix + 1) ÇadrNewPart^.adr = s wp.newtextobject ("", @adrNewPart^.changes); adrNewPart^.platform = "both"; adrNewPart^.version = frontierVersion; local (bytes); pack (adrNewPart^, @bytes); bytes = base64.encode (bytes, infinity); delete (adrNewPart); adrNewPart^ = bytes; addedItems = addedItems + {adrItem^.what}; sys.systemTask ()}; adrTable^.ctPartsSent = sizeof (addedItems); //02/04/07, 08:22:36 by DAB return (parts)}; Çbundle // testing Çserver ("Frontier.root", tcp.dns.getMyDottedId (), date.prevMonth (clock.now ()), "Thomas A. Creedon", "icr...@ya...", 0) Çserver ("prefs.root", tcp.dns.getMyDottedId (), clock.now (), "Jake", "ja...@us...", 10) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:49:31
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3168 Modified Files: startup Log Message: nirvanaServer is not a supported name for betty updated root update server information for frontier open source Index: startup =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/startup,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** startup 26 Mar 2005 21:45:09 -0000 1.1.1.1 --- startup 25 Dec 2005 01:49:22 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.startup ! ÇThis script is called when Frontier starts up, to get mainResponder ready for another session. ÇChanges: ÇTue, Mar 9, 1999 at 4:14:33 PM by PBS ÇCall Frontier.getSubFolder rather than mainResponder.getFolder. ÇThu, Mar 25, 1999 at 3:11:02 PM by PBS ÇDon't create an empty news.root if none exists. Ç10/25/99; 2:55:22 PM by PBS ÇCreate callbacks in user.webEditServer.callbacks as scripts, not addresses, since addresses break when Frontier is moved to another machine or folder or the hard drive is renamed. This removes the leading cause of problems with WebEditServer. ÇChanged default root updates prefs. Server is updates.userland.com, URL is http://frontier.userland.com/updates/mainResponder Ç11/15/99; 10:57:16 PM by PBS ÇOn some systems, if any or all of config.root, discuss.root, members.root, and news.root are open before mainResponder's startup script runs, this would cause the startup script to abort with an error. Now the startup script checks to see if a database is open before trying to open it -- if it's already open, it doesn't try to open it. Ç12/11/99; 5:29:27 AM by AR ÇUpdated the code for hooking into the scheduler: Only create entries in user.scheduler if they don't already exist. Also, use scripts instead of addresses for better portability. Ç12/30/99; 12:16:25 PM by PBS ÇWhen creating a new default membership group, set the cookie expiration date to Mon, 01 Apr 2030 07:00:00 GMT. Ç05/15/00; 9:33:03 PM by PBS ÇMake sure the nightlyUpdates task has been created. This scheduler task handles updating the various Frontier gdbs. It was uncoupled from mainResponder.background.everyNight, as machines were competing on the hour to get updates. Now the times are more dispersed. Ç07/29/00; 10:12:31 AM by PBS ÇEnsure that the everyMinute task, if it already exists, is valid. It's crucial to save databases every minute. on startupmsg (s) { msg ("mainResponder.startup: " + s)}; new (tabletype, @system.temp.mainResponder); local (alist = string.parseAddress (this)); system.temp.mainResponder.mainResponderRootFile = alist [1]; bundle { //get the path to Index.root ÇTuesday, January 19, 1999 at 3:52:27 PM by PBS system.temp.mainResponder.indexRootFile = Frontier.getSubFolder ("ops/") + "Index.root"}; bundle { //system.temp.mainResponder.search ÇTuesday, January 19, 1999 at 3:44:11 PM by PBS new (tableType, @system.temp.mainResponder.search)}; bundle { //open config.root startupmsg ("Opening config.root" ); local (f = Frontier.getSubFolder ("apps") + "config.root"); system.temp.mainResponder.configRootFile = f; if not defined ([f]) { //PBS 11/15/99: open config.root only if it's not already open mainResponder.openFile ("apps", "config.root")}; local (adrconfig = @[system.temp.mainResponder.configRootFile].config); if not defined (adrconfig^) { new (tabletype, adrconfig)}}; mainResponder.init (); bundle { //init Frontier.root stuff Çuser.menus.nirvanaServer = @mainResponder.menu // Sun, 07 Mar 1999 15:06:26 GMT by AR ÇAdd XML-RPC handlers. if not defined (user.betty.rpcHandlers.nirvanaServer) { user.betty.rpcHandlers.nirvanaServer = @mainResponder.rpcHandlers}; if not defined (user.betty.rpcHandlers.mainResponder) { //PBS 3/16/99: both names are supported user.betty.rpcHandlers.mainResponder = @mainResponder.rpcHandlers}; ÇAdd WebEditServer callbacks needed to support #changes table and search engine indexing. webEditServer.init (); local (scriptCode = "on nirvanaServer (adrObject, username, now, description)\r\treturn (mainResponder.subscriptions.checkInCallback (adrObject, username, now, description))"); if not defined (user.webeditserver.callbacks.checkin.nirvanaServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkin.nirvanaServer)}; if not defined (user.webeditserver.callbacks.sendToServer.nirvanaServer) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.sendToServer.nirvanaServer)}}; scriptCode = "on searchEngineClient (adrObject, username=nil, now=nil, description=nil)\r\treturn (mainResponder.search.client.webEditCallback (adrObject, username, now, description))"; if not defined (user.webeditserver.callbacks.checkIn.searchEngineClient) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkIn.searchEngineClient)}; if not defined (user.webEditServer.callbacks.sendToServer.searchEngineClient) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webEditServer.callbacks.sendToServer.searchEngineClient)}}; ÇScheduler. scheduler.init (); //upgrades user.scheduler if it needs it if not defined (user.scheduler.everyMinute.nirvanaServer) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)} else { //PBS 07/29/00: ensure that the everyMinute task is actually valid: it's crucial to save databases every minute if typeOf (user.scheduler.everyMinute.nirvanaServer) == addressType { if not defined (user.scheduler.everyMinute.nirvanaServer^) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)}}}; if not defined (user.scheduler.hourly.nirvanaServer) { local (scriptCode = "mainresponder.background.everyHour ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.nirvanaServer)}; if not defined (user.scheduler.hourly.searchEngine) { local (scriptCode = "mainResponder.search.server.indexStoredPages ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.searchEngine)}; if not defined (user.scheduler.overnight.nirvanaServer) { local (scriptCode = "mainresponder.background.everynight ()"); script.newScriptObject (scriptCode, @user.scheduler.overnight.nirvanaServer)}; if not defined (user.scheduler.tasks.nightlyUpdates) { local (adrTable = @user.scheduler.tasks.nightlyUpdates); startupMsg ("Creating nightly updates task."); new (tableType, adrTable); local (scriptCode = "mainResponder.background.nightlyUpdates ()"); script.newScriptObject (scriptCode, @adrTable^.script); adrTable^.ctRuns = 0; adrTable^.error = ""; adrTable^.minutesBetweenRuns = 1440; ÇGet a task time that's a random 5 to 55 minutes in the hour after the overnight script runs. local (overnightTaskTime = user.scheduler.tasks.overnight.taskTime); local (minutesPastTime = random (5, 55)); local (updatesTaskTime = overnightTaskTime + (minutesPastTime * 60)); adrTable^.taskTime = updatesTaskTime}}; bundle { //init rootUpdates prefs for mainResponder.root. ÇWednesday, March 03, 1999 at 11:40:43 AM by PBS local (adrTable = @user.rootUpdates.servers.mainResponder); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.autobackup) { adrTable^.autobackup = true}; if not defined (adrTable^.dbname) { adrTable^.dbname = "mainResponder.root"}; if not defined (adrTable^.dialogs) { adrTable^.dialogs = true}; if not defined (adrTable^.lastUpdate) { adrTable^.lastUpdate = "Sun, 21 Mar 1999 24:00:00 GMT"}; if not defined (adrTable^.method) { adrTable^.method = "mainResponder.subscriptions.update"}; if not defined (adrTable^.port) { adrTable^.port = 80}; if not defined (adrTable^.serialNum) { adrTable^.serialNum = 1}; if not defined (adrTable^.server) { adrTable^.server = "updates.userland.com"}; if not defined (adrTable^.URL) { adrTable^.URL = "http://frontier.userland.com/updates/mainResponder"}}; bundle { //open discuss.root startupmsg ("Opening discuss.root" ); local (f = Frontier.getSubFolder ("ops") + "discuss.root"); system.temp.mainResponder.discussRootFile = f; if not defined ([f]) { //PBS 11/15/99: open discuss.root only if it's not already open mainResponder.openFile ("ops", "discuss.root")}; local (adrdata = @[f].["discuss"]); if not defined (adrdata^) { new (tabletype, adrdata)}; if not defined (adrdata^.calendar) { new (tabletype, @adrdata^.calendar)}; if not defined (adrdata^.messages) { new (tabletype, @adrdata^.messages)}; bundle { //prefs local (adrprefs = @adrdata^.prefs); if not defined (adrprefs^) { new (tabletype, adrprefs)}; Çif not defined (adrprefs^.auditTrail) //Fri, 12 Mar 1999 17:43:10 GMT by AR Çadrprefs^.auditTrail = true Çif not defined (adrprefs^.auditTrailFolder) Çlocal (pc = file.getpathchar ()) Çadrprefs^.auditTrailFolder = Frontier.getSubFolder ("/ops/discuss/") //PBS 3/9/99 if not defined (adrprefs^.nextMsgNum) { adrprefs^.nextMsgNum = 1}; if not defined (adrprefs^.url) { //PBS 3/16/99 adrprefs^.url = config.mainResponder.urls.discussMsgReader}; if not defined (adrprefs^.adrMsgReader) { //PBS 3/16/99 local (f = Frontier.getSubFolder ("/www/") + "htmlInterfaces.root"); if defined ([f].discussionGroup.msgReader) { adrprefs^.adrMsgReader = @[f].discussionGroup.msgReader} else { adrprefs^.adrMsgReader = nil}}}; //it can be set later: it should exist, at least try {delete (@[f].["item #1"])}; filemenu.save (f)}; bundle { //open members.root startupmsg ("Opening members.root" ); local (f = Frontier.getSubFolder ("ops") + "members.root"); system.temp.mainResponder.membersRootFile = f; if not defined ([f]) { //PBS 11/15/99: open members.root only if it's not already open mainResponder.openFile ("ops", "members.root")}; local (adrtable = @[f].["default"]); if not defined (adrtable^) { new (tabletype, adrtable)}; if not defined (adrtable^.callbacks) { new (tabletype, @adrtable^.callbacks)}; if not defined (adrtable^.cookieDomain) { adrtable^.cookieDomain = ""}; if not defined (adrtable^.cookieExpires) { Çadrtable^.cookieExpires = "Friday, 31-Dec-99 23:59:59 GMT" adrtable^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; //PBS 12/30/99: set the cookie expiration date farther in the future if not defined (adrtable^.cookieName) { adrtable^.cookieName = "Nirvana Server"}; if not defined (adrtable^.mailReturnAddress) { adrtable^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrtable^.mailSubject) { adrtable^.mailSubject = "Welcome!"}; if not defined (adrtable^.mailTemplate) { adrtable^.mailTemplate = mainResponder.data.mailTemplate}; if not defined (adrtable^.openToPublic) { adrtable^.openToPublic = true}; if not defined (adrtable^.users) { new (tabletype, @adrtable^.users)}; try {delete (@[f].["item #1"])}}; bundle { //open news.root local (folder = Frontier.getSubFolder ("/www/")); local (f = folder + "news.root"); if file.exists (f) { startupmsg ("Opening news.root" ); if not defined ([f]) { //PBS 11/15/99: open news.root only if it's not already open mainResponder.openFile ("www", "news.root")}; system.temp.mainResponder.newsRootFile = f}}; msg ("") //wipe out any msg we left behind \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.startup ! ÇChanges Ç12/23/05; 9:31:12 PM by TAC ÇnirvanaServer is not a supported name for betty Çupdated root update server information for frontier open source Ç07/29/00; 10:12:31 AM by PBS ÇEnsure that the everyMinute task, if it already exists, is valid. It's crucial to save databases every minute. Ç05/15/00; 9:33:03 PM by PBS ÇMake sure the nightlyUpdates task has been created. This scheduler task handles updating the various Frontier gdbs. It was uncoupled from mainResponder.background.everyNight, as machines were competing on the hour to get updates. Now the times are more dispersed. Ç1999 Ç12/30/99; 12:16:25 PM by PBS ÇWhen creating a new default membership group, set the cookie expiration date to Mon, 01 Apr 2030 07:00:00 GMT. Ç12/11/99; 5:29:27 AM by AR ÇUpdated the code for hooking into the scheduler: Only create entries in user.scheduler if they don't already exist. Also, use scripts instead of addresses for better portability. Ç11/15/99; 10:57:16 PM by PBS ÇOn some systems, if any or all of config.root, discuss.root, members.root, and news.root are open before mainResponder's startup script runs, this would cause the startup script to abort with an error. Now the startup script checks to see if a database is open before trying to open it -- if it's already open, it doesn't try to open it. Ç10/25/99; 2:55:22 PM by PBS ÇCreate callbacks in user.webEditServer.callbacks as scripts, not addresses, since addresses break when Frontier is moved to another machine or folder or the hard drive is renamed. This removes the leading cause of problems with WebEditServer. ÇChanged default root updates prefs. Server is updates.userland.com, URL is http://frontier.userland.com/updates/mainResponder ÇThu, Mar 25, 1999 at 3:11:02 PM by PBS ÇDon't create an empty news.root if none exists. ÇTue, Mar 9, 1999 at 4:14:33 PM by PBS ÇCall Frontier.getSubFolder rather than mainResponder.getFolder. ÇThis script is called when Frontier starts up, to get mainResponder ready for another session. on startupmsg (s) { msg ("mainResponder.startup: " + s)}; new (tabletype, @system.temp.mainResponder); local (alist = string.parseAddress (this)); system.temp.mainResponder.mainResponderRootFile = alist [1]; bundle { //get the path to Index.root ÇTuesday, January 19, 1999 at 3:52:27 PM by PBS system.temp.mainResponder.indexRootFile = Frontier.getSubFolder ("ops/") + "Index.root"}; bundle { //system.temp.mainResponder.search ÇTuesday, January 19, 1999 at 3:44:11 PM by PBS new (tableType, @system.temp.mainResponder.search)}; bundle { //open config.root startupmsg ("Opening config.root" ); local (f = Frontier.getSubFolder ("apps") + "config.root"); system.temp.mainResponder.configRootFile = f; if not defined ([f]) { //PBS 11/15/99: open config.root only if it's not already open mainResponder.openFile ("apps", "config.root")}; local (adrconfig = @[system.temp.mainResponder.configRootFile].config); if not defined (adrconfig^) { new (tabletype, adrconfig)}}; mainResponder.init (); bundle { //init Frontier.root stuff Çuser.menus.nirvanaServer = @mainResponder.menu // Sun, 07 Mar 1999 15:06:26 GMT by AR ÇAdd XML-RPC handlers. Çif not defined (user.betty.rpcHandlers.nirvanaServer) Çuser.betty.rpcHandlers.nirvanaServer = @mainResponder.rpcHandlers if not defined (user.betty.rpcHandlers.mainResponder) { //PBS 3/16/99: both names are supported user.betty.rpcHandlers.mainResponder = @mainResponder.rpcHandlers}; ÇAdd WebEditServer callbacks needed to support #changes table and search engine indexing. webEditServer.init (); local (scriptCode = "on nirvanaServer (adrObject, username, now, description)\r\treturn (mainResponder.subscriptions.checkInCallback (adrObject, username, now, description))"); if not defined (user.webeditserver.callbacks.checkin.nirvanaServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkin.nirvanaServer)}; if not defined (user.webeditserver.callbacks.sendToServer.nirvanaServer) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.sendToServer.nirvanaServer)}}; scriptCode = "on searchEngineClient (adrObject, username=nil, now=nil, description=nil)\r\treturn (mainResponder.search.client.webEditCallback (adrObject, username, now, description))"; if not defined (user.webeditserver.callbacks.checkIn.searchEngineClient) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkIn.searchEngineClient)}; if not defined (user.webEditServer.callbacks.sendToServer.searchEngineClient) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webEditServer.callbacks.sendToServer.searchEngineClient)}}; ÇScheduler. scheduler.init (); //upgrades user.scheduler if it needs it if not defined (user.scheduler.everyMinute.nirvanaServer) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)} else { //PBS 07/29/00: ensure that the everyMinute task is actually valid: it's crucial to save databases every minute if typeOf (user.scheduler.everyMinute.nirvanaServer) == addressType { if not defined (user.scheduler.everyMinute.nirvanaServer^) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)}}}; if not defined (user.scheduler.hourly.nirvanaServer) { local (scriptCode = "mainresponder.background.everyHour ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.nirvanaServer)}; if not defined (user.scheduler.hourly.searchEngine) { local (scriptCode = "mainResponder.search.server.indexStoredPages ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.searchEngine)}; if not defined (user.scheduler.overnight.nirvanaServer) { local (scriptCode = "mainresponder.background.everynight ()"); script.newScriptObject (scriptCode, @user.scheduler.overnight.nirvanaServer)}; if not defined (user.scheduler.tasks.nightlyUpdates) { local (adrTable = @user.scheduler.tasks.nightlyUpdates); startupMsg ("Creating nightly updates task."); new (tableType, adrTable); local (scriptCode = "mainResponder.background.nightlyUpdates ()"); script.newScriptObject (scriptCode, @adrTable^.script); adrTable^.ctRuns = 0; adrTable^.error = ""; adrTable^.minutesBetweenRuns = 1440; ÇGet a task time that's a random 5 to 55 minutes in the hour after the overnight script runs. local (overnightTaskTime = user.scheduler.tasks.overnight.taskTime); local (minutesPastTime = random (5, 55)); local (updatesTaskTime = overnightTaskTime + (minutesPastTime * 60)); adrTable^.taskTime = updatesTaskTime}}; bundle { //init rootUpdates prefs for mainResponder.root. ÇWednesday, March 03, 1999 at 11:40:43 AM by PBS local (adrTable = @user.rootUpdates.servers.mainResponder); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.autobackup) { adrTable^.autobackup = true}; if not defined (adrTable^.dbname) { adrTable^.dbname = "mainResponder.root"}; if not defined (adrTable^.dialogs) { adrTable^.dialogs = true}; if not defined (adrTable^.lastUpdate) { adrTable^.lastUpdate = "Sun, 01 Jan 2006 08:00:00 GMT"}; if not defined (adrTable^.method) { adrTable^.method = "mainResponder.subscriptions.update"}; if not defined (adrTable^.port) { adrTable^.port = 8081}; if not defined (adrTable^.serialNum) { adrTable^.serialNum = 0}; if not defined (adrTable^.server) { adrTable^.server = "rootUpdates.frontierOpenSource.editHere.com"}; if not defined (adrTable^.URL) { adrTable^.URL = "http://www.frontierOpenSource.editHere.com/rootUpdates/mainResponder"}}; bundle { //open discuss.root startupmsg ("Opening discuss.root" ); local (f = Frontier.getSubFolder ("ops") + "discuss.root"); system.temp.mainResponder.discussRootFile = f; if not defined ([f]) { //PBS 11/15/99: open discuss.root only if it's not already open mainResponder.openFile ("ops", "discuss.root")}; local (adrdata = @[f].["discuss"]); if not defined (adrdata^) { new (tabletype, adrdata)}; if not defined (adrdata^.calendar) { new (tabletype, @adrdata^.calendar)}; if not defined (adrdata^.messages) { new (tabletype, @adrdata^.messages)}; bundle { //prefs local (adrprefs = @adrdata^.prefs); if not defined (adrprefs^) { new (tabletype, adrprefs)}; Çif not defined (adrprefs^.auditTrail) //Fri, 12 Mar 1999 17:43:10 GMT by AR Çadrprefs^.auditTrail = true Çif not defined (adrprefs^.auditTrailFolder) Çlocal (pc = file.getpathchar ()) Çadrprefs^.auditTrailFolder = Frontier.getSubFolder ("/ops/discuss/") //PBS 3/9/99 if not defined (adrprefs^.nextMsgNum) { adrprefs^.nextMsgNum = 1}; if not defined (adrprefs^.url) { //PBS 3/16/99 adrprefs^.url = config.mainResponder.urls.discussMsgReader}; if not defined (adrprefs^.adrMsgReader) { //PBS 3/16/99 local (f = Frontier.getSubFolder ("/www/") + "htmlInterfaces.root"); if defined ([f].discussionGroup.msgReader) { adrprefs^.adrMsgReader = @[f].discussionGroup.msgReader} else { adrprefs^.adrMsgReader = nil}}}; //it can be set later: it should exist, at least try {delete (@[f].["item #1"])}; filemenu.save (f)}; bundle { //open members.root startupmsg ("Opening members.root" ); local (f = Frontier.getSubFolder ("ops") + "members.root"); system.temp.mainResponder.membersRootFile = f; if not defined ([f]) { //PBS 11/15/99: open members.root only if it's not already open mainResponder.openFile ("ops", "members.root")}; local (adrtable = @[f].["default"]); if not defined (adrtable^) { new (tabletype, adrtable)}; if not defined (adrtable^.callbacks) { new (tabletype, @adrtable^.callbacks)}; if not defined (adrtable^.cookieDomain) { adrtable^.cookieDomain = ""}; if not defined (adrtable^.cookieExpires) { Çadrtable^.cookieExpires = "Friday, 31-Dec-99 23:59:59 GMT" adrtable^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; //PBS 12/30/99: set the cookie expiration date farther in the future if not defined (adrtable^.cookieName) { adrtable^.cookieName = "Nirvana Server"}; if not defined (adrtable^.mailReturnAddress) { adrtable^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrtable^.mailSubject) { adrtable^.mailSubject = "Welcome!"}; if not defined (adrtable^.mailTemplate) { adrtable^.mailTemplate = mainResponder.data.mailTemplate}; if not defined (adrtable^.openToPublic) { adrtable^.openToPublic = true}; if not defined (adrtable^.users) { new (tabletype, @adrtable^.users)}; try {delete (@[f].["item #1"])}}; bundle { //open news.root local (folder = Frontier.getSubFolder ("/www/")); local (f = folder + "news.root"); if file.exists (f) { startupmsg ("Opening news.root" ); if not defined ([f]) { //PBS 11/15/99: open news.root only if it's not already open mainResponder.openFile ("www", "news.root")}; system.temp.mainResponder.newsRootFile = f}}; msg ("") //wipe out any msg we left behind \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:48:37
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3061 Modified Files: updates Log Message: removed UserLand and Manila references Index: updates =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/updates,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** updates 26 Mar 2005 21:45:19 -0000 1.1.1.1 --- updates 25 Dec 2005 01:48:22 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.website.updates ! on updates () { ÇChanges Ç12/16/03; 3:33:02 AM by JES ÇCreated. Display the pending feature updates and bug fixes which have yet to be downloaded. local (pta = html.getPageTableAddress ()); pta^.title = "Pending Updates"; local (htext = ""); on add (s) { htext = htext + (s + "\r");}; bundle { //explanatory text add ("<p>The pending updates page displays features and bug fixes available from UserLand, which have not yet been installed on this server. To download the recent updates, click the Update Now button.</p>")}; bundle { //update now button and processing add ("<form method=\"POST\">"); add ("<table cellpadding=0 cellspacing=0 border=0>" + mainResponder.adminSite.prefs.updateNowButton (false) + "</table><br><br>"); add ("</form>")}; local (dbsToUpdate = {"Frontier", "mainResponder", "manila", "prefs"}); try {rootUpdates.getPendingUpdatesList (@config.mainResponder.stats, mainResponder.data.featureListRssUrl, dbsToUpdate)}; add (rootUpdates.listPendingUpdates (@config.mainResponder.stats)); return (htext)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.website.updates ! on updates () { ÇChanges Ç12/24/05; 11:50:35 AM by TAC Çremoved UserLand and Manila references Ç12/16/03; 3:33:02 AM by JES ÇCreated. Display the pending feature updates and bug fixes which have yet to be downloaded. local (pta = html.getPageTableAddress ()); pta^.title = "Pending Updates"; local (htext = ""); on add (s) { htext = htext + (s + "\r");}; bundle { //explanatory text add ("<p>The pending updates page displays features and bug fixes available, which have not yet been installed on this server. To download the recent updates, click the Update Now button.</p>")}; bundle { //update now button and processing add ("<form method=\"POST\">"); add ("<table cellpadding=0 cellspacing=0 border=0>" + mainResponder.adminSite.prefs.updateNowButton (false) + "</table><br><br>"); add ("</form>")}; local (dbsToUpdate = {"Frontier", "mainResponder", "prefs"}); try {rootUpdates.getPendingUpdatesList (@config.mainResponder.stats, mainResponder.data.featureListRssUrl, dbsToUpdate)}; add (rootUpdates.listPendingUpdates (@config.mainResponder.stats)); return (htext)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:47:43
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/background In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2974 Modified Files: nightlyUpdates Log Message: removed Manila references Index: nightlyUpdates =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/background/nightlyUpdates,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** nightlyUpdates 26 Mar 2005 21:45:20 -0000 1.1.1.1 --- nightlyUpdates 25 Dec 2005 01:47:35 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.background.nightlyUpdates ! ÇChanges: Ç12/17/03; 1:30:50 AM by JES ÇChanged to send email notification of new features (if enabled), instead of actually downloading them. Email notification is sent only when new updates are available, of which the user has not yet been notified. Ç04/27/00; 2:21:07 PM by PBS ÇUpdate all the databases that should be updated every night. Uncoupled from mainResponder.background.everyNight -- this script now runs at its own time, since there was the issue of competing updates when doing root updates at 11 or 12 every night. if config.mainResponder.prefs.flUpdateNightly { //send notification of new updates to the sysadmin local (dbsToUpdate = {"Frontier", "mainResponder", "manila", "prefs"}); if not defined (config.mainresponder.stats.whenLastUpdatesNotification) { config.mainresponder.stats.whenLastUpdatesNotification = date (0)}; rootUpdates.getPendingUpdatesList (@config.mainResponder.stats, mainResponder.data.featureListRssUrl, dbsToUpdate); if sizeOf (config.mainResponder.stats.pendingUpdates) > 0 { //build and send the email local (mtext = ""); on add (s) { mtext = mtext + (s + "\r\n");}; local (ctupdates = sizeOf (config.mainResponder.stats.pendingUpdates), i); if date (config.mainresponder.stats.pendingUpdates[ctupdates].data.pubdate) > config.mainresponder.stats.whenLastUpdatesNotification { local (host = tcp.dns.getMyDomainName ()); local (port = user.inetd.config.http2.port); host = host + ":" + port; bundle { //HTML version bundle { //header text add ("<p>There are " + ctupdates + " new Manila updates available. To download and install the updates, click <a href=\"http://" + host + mainResponder.adminSite.urls.updates + "\">here</a>, and then click the Update Now button.</p>"); add ("<hr size=\"1\" width=\"100%\">")}; add (string.replaceAll (rootUpdates.listPendingUpdates (@config.mainResponder.stats), "\r", "\r\n")); tcp.sendMail (user.prefs.mailAddress, ctupdates + " New Manila Updates Available", mtext, user.prefs.mailAddress, mimeType:"text/html"); config.mainresponder.stats.whenLastUpdatesNotification = clock.now ()}}}; Çbundle //old code ÇrootUpdates.threadedMultiRootUpdate (config.mainResponder.prefs.updateNightlyList)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.background.nightlyUpdates ! ÇChanges Ç12/24/05; 12:03:36 PM by TAC Çremoved Manila references Ç12/17/03; 1:30:50 AM by JES ÇChanged to send email notification of new features (if enabled), instead of actually downloading them. Email notification is sent only when new updates are available, of which the user has not yet been notified. Ç04/27/00; 2:21:07 PM by PBS ÇUpdate all the databases that should be updated every night. Uncoupled from mainResponder.background.everyNight -- this script now runs at its own time, since there was the issue of competing updates when doing root updates at 11 or 12 every night. if config.mainResponder.prefs.flUpdateNightly { //send notification of new updates to the sysadmin local (dbsToUpdate = {"Frontier", "mainResponder", "prefs"}); if not defined (config.mainresponder.stats.whenLastUpdatesNotification) { config.mainresponder.stats.whenLastUpdatesNotification = date (0)}; rootUpdates.getPendingUpdatesList (@config.mainResponder.stats, mainResponder.data.featureListRssUrl, dbsToUpdate); if sizeOf (config.mainResponder.stats.pendingUpdates) > 0 { //build and send the email local (mtext = ""); on add (s) { mtext = mtext + (s + "\r\n");}; local (ctupdates = sizeOf (config.mainResponder.stats.pendingUpdates), i); if date (config.mainresponder.stats.pendingUpdates[ctupdates].data.pubdate) > config.mainresponder.stats.whenLastUpdatesNotification { local (host = tcp.dns.getMyDomainName ()); local (port = user.inetd.config.http2.port); host = host + ":" + port; bundle { //HTML version bundle { //header text add ("<p>There are " + ctupdates + " new updates available. To download and install the updates, click <a href=\"http://" + host + mainResponder.adminSite.urls.updates + "\">here</a>, and then click the Update Now button.</p>"); add ("<hr size=\"1\" width=\"100%\">")}; add (string.replaceAll (rootUpdates.listPendingUpdates (@config.mainResponder.stats), "\r", "\r\n")); tcp.sendMail (user.prefs.mailAddress, ctupdates + " New Updates Available", mtext, user.prefs.mailAddress, mimeType:"text/html"); config.mainresponder.stats.whenLastUpdatesNotification = clock.now ()}}}; Çbundle //old code ÇrootUpdates.threadedMultiRootUpdate (config.mainResponder.prefs.updateNightlyList)}} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:44:13
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/suites/webEditServer/rpcHandlers/webEdit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2648 Modified Files: sendToServer Log Message: pop file from adrObject for user display Index: sendToServer =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/suites/webEditServer/rpcHandlers/webEdit/sendToServer,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** sendToServer 26 Mar 2005 19:41:18 -0000 1.1.1.1 --- sendToServer 25 Dec 2005 01:44:05 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:suites.webEditServer.rpcHandlers.webEdit.sendToServer ! on sendToServer (userName, password, adrObject, data, objectType, note="") { ÇThe client is sending us an object that's checked out, but it shouldn't be checked back in yet. The client is not giving up custody. ÇTue, Mar 9, 1999 at 3:40:53 PM by PBS local (adrPreCallback = @user.webEditServer.callbacks.preSendToServer); local (adrCallback = @user.webEditServer.callbacks.sendToServer); local (now = clock.now ()); if not (people.authenticateUser (userName, password, "WebEdit")) { scriptError ("Can't replace " + adrObject + " because an invalid username or password was supplied.")}; adrObject = webEditServer.fixGuestDbAdr (adrObject); ÇMake sure the object is checked out by this user, if the object already exists. if defined (adrObject^) { if not (custody.isCheckedOutByUser (adrObject, userName)) { return ("Can't replace " + adrObject + " because " + userName + " has not checked it out.")}}; data = fatPages.decode (@data); setBinaryType (@data, string4 (objectType)); unpack (@data, @data); webEditServer.callbackLoop (adrPreCallback, adrObject, userName, now, ""); table.assign (address (adrObject), data); webEditServer.callbackLoop (adrCallback, adrObject, userName, now, note); ÇAdd to the imported objects log. export.addToLog (adrObject, notes:"From " + username); filemenu.saveMyRoot (adrobject); return (adrObject + " has been replaced on the server.")} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:suites.webEditServer.rpcHandlers.webEdit.sendToServer ! on sendToServer (userName, password, adrObject, data, objectType, note="") { ÇChanges Ç12/24/05; 2:19:11 PM by TAC Çpop file from adrObject for user display ÇTue, Mar 9, 1999 at 3:40:53 PM by PBS ÇThe client is sending us an object that's checked out, but it shouldn't be checked back in yet. The client is not giving up custody. local (adrPreCallback = @user.webEditServer.callbacks.preSendToServer); local (adrCallback = @user.webEditServer.callbacks.sendToServer); local (now = clock.now ()); if not (people.authenticateUser (userName, password, "WebEdit")) { scriptError ("Can't replace " + string.popFileFromAddress (adrObject) + " because an invalid userName or password was supplied.")}; adrObject = webEditServer.fixGuestDbAdr (adrObject); ÇMake sure the object is checked out by this user, if the object already exists. if defined (adrObject^) { if not (custody.isCheckedOutByUser (adrObject, userName)) { return ("Can't replace " + string.popFileFromAddress (adrObject) + " because " + userName + " has not checked it out.")}}; data = fatPages.decode (@data); setBinaryType (@data, string4 (objectType)); unpack (@data, @data); webEditServer.callbackLoop (adrPreCallback, adrObject, userName, now, ""); table.assign (address (adrObject), data); webEditServer.callbackLoop (adrCallback, adrObject, userName, now, note); ÇAdd to the imported objects log. export.addToLog (adrObject, notes: "From " + userName); filemenu.saveMyRoot (adrobject); return (string.popFileFromAddress (adrObject) + " has been replaced on the server.")} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:40:19
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/startup In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2159 Modified Files: startupScript Log Message: prefs.root now has a #startup script, deal with it Index: startupScript =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/startup/startupScript,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** startupScript 11 Nov 2005 00:30:27 -0000 1.13 --- startupScript 25 Dec 2005 01:40:10 -0000 1.14 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.startup.startupScript ! ÇChanges Ç11/10/05; 4:24:48 PM by TAC Çmoved system.temp.Frontier/starting up after first if firstRootRun check was causing startup problem Ç11/5/05; 12:00:32 PM by TAC Çmoved system.temp.Frontier check back to top of script Ç10/9/05; 3:39:07 PM by TAC Çwhen storing prefs.root path, store realative path Çuse table.copyUndefinedContents to copy some item Çmove some of the user prefs initializations into Frontier.data.userPrefs Çrearrange script so that some initializations can happen outside of the first root run, this should make it easier to add new items and not have them get missed because the first root run had already been run once Ç10/4/05; 7:26:36 PM by TAC Çupon check for presence of Psapi.dll, don't use hard coded application name Ç9/26/05; 4:30:14 PM by TAC Çadded user.prefs.flReplaceDialogExpertMode Ç8/23/05; 7:22:18 PM by TAC Çadded user.prefs.flCompactModalMenus Ç7/14/05; 10:35:39 AM by TAC Çsystem.menus.data.currentMenuType set to nil so agent will update modal menu properly upon relaunch Ç7/6/05; 12:21:38 PM by TAC Çchanged user.callbacks.sendmail to user.callbacks.tcpSendMail Çadded user.prefs.mailHostPort Ç6/15/05; 6:52:11 PM by TAC Çrewrite for Open Source release, bring in code from startup.startupScript, userland.firstRootRun, userland.finishInstall, and userland.cleanRoot ÇOld code Çstartup.startupScript <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/startup/startupScript?rev=1.1> Çuserland.firstRootRun <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/firstRootRun?rev=1.1> Çuserland.finishInstall <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/finishInstall?rev=1.1> Çuserland.cleanRoot <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/cleanRoot?rev=1.1> Ç06/08/01; 11:24:35 PM by JES ÇWhen opening databases defined at user.databases, skip objects which aren't tables. This avoids the condition where startup wouldn't complete, if there's an item #1 in the user.databases table. Ç06/02/01; 8:34:20 PM by PBS ÇDo the web-based install and open the Control Panel if this is the first root run. Ç04/28/01; 7:48:46 PM by JES ÇCall Frontier.tools.startup in a try block, so that the startup process will finish even if Tools installation fails. Ç04/20/01; 4:49:05 PM by JES ÇCall tools.startup to install Tools at startup. Ç10/7/99; 4:20:26 PM by PBS ÇOnly run the #startup script in a guest database if runStartupScript exists and is true. Previously, it would be run whether runStartupScript was true or false. Çhttp://frontier.userland.com/stories/storyReader$1760 Ç10/6/99; 10:21:35 PM by PBS ÇOnly set the taskTime for the overnight task if it's in the past. This fixes a bug when the taskTime was before midnight, but it was being set for the next day, so the overnight task wouldn't run. Çhttp://frontier.userland.com/stories/storyReader$1761 Ç8/19/99; 6:44:48 AM by DW ÇMake sure that taskTimes in user.scheduler.tasks are in the future. ÇWe do this much more quickly than scheduler.monitor would. Çhttp://discuss.userland.com/msgReader$9658 ÇThis script runs when Frontier opens the Frontier.root file. if defined (system.temp.Frontier) { // only run the startup script once return}; local (flEnableAgents = true, flOpenDatabases = true, flEnableHttpServer = true); // can be set by the external startup script local (flFirstRootRun = true); bundle { // miscellaneous variable initializations and checks, phase 1 of 2 Frontier.pathString = file.folderFromPath (frontier.getFilePath ())}; if defined (user.prefs.firstRootRun) { flFirstRootRun = user.prefs.firstRootRun}; if flFirstRootRun { // disable agents, hide all windows, wipe temp and user Frontier.enableAgents (false); // try to keep agents from reporting errors while window.frontmost () != "" { // open windows can mess things up later on window.hide (window.frontmost ())}; Çreturn (false) // enable for testing new (tableType, @system.temp); new (tableType, @root.user)}; bundle { // system.temp.Frontier, we are starting up new (tableType, @system.temp.Frontier); system.temp.Frontier.startupTime = clock.now (); system.temp.Frontier.startingUp = true}; backups.init (); batchExporter.init (); export.init (); rootUpdates.init (); // set up user.rootUpdates, even though root updates uses tcp, its ok to set up here as no tcp calls are made at this time webEdit.init (); bundle { // set up user.prefs if flFirstRootRun { new (tableType, @user.prefs); bundle { // set up user.prefs.commonStyles case sys.os () { "MacOS" { if system.environment.isCarbon { user.prefs.commonStyles = Frontier.data.commonStylesMacCarbon} else { user.prefs.commonStyles = Frontier.data.commonStylesMac}}; "Win95"; "WinNT" { user.prefs.commonStyles = Frontier.data.commonStylesWin}}}}; table.copyUndefinedContents (@Frontier.data.userPrefs, @user.prefs); bundle { // set up user.prefs.dialogs if flFirstRootRun { new (tableType, @user.prefs.dialogs)}; table.copyUndefinedContents (@Frontier.data.userPrefs.dialogs, @user.prefs.dialogs)}; bundle { // set up user.prefs.search if flFirstRootRun { new (tableType, @user.prefs.search)}; table.copyUndefinedContents (@Frontier.data.userPrefs.search, @user.prefs.search); if not (defined (user.prefs.search.replaceWith)) { user.prefs.search.replaceWith = Frontier.version ()}}; Frontier.setupUserPrefsFonts ()}; if flFirstRootRun { bundle { // set up the quick script window clipboard.putvalue ("dialog.notify (\"Hello World!\")"); window.quickScript (); editmenu.selectall (); editmenu.paste (); window.close ("Quick Script")}; bundle { // set up root window local (w = "root"); window.open (w); window.setPosition (w, 0, 0); editMenu.setFont (user.prefs.fonts.tableFont); editMenu.setFontSize (user.prefs.fonts.tableFontSize); window.zoom (w)}; bundle { // set up user.callbacks new (tableType, @user.callbacks); new (tableType, @user.callbacks.closeWindow); new (tableType, @user.callbacks.cmd2click); new (tableType, @user.callbacks.compileChangedScript); new (tableType, @user.callbacks.control2click); new (tableType, @user.callbacks.fileWriteWholeFile); new (tableType, @user.callbacks.opCollapse); new (tableType, @user.callbacks.opCursorMoved); new (tableType, @user.callbacks.openWindow); new (tableType, @user.callbacks.opExpand); new (tableType, @user.callbacks.opInsert); new (tableType, @user.callbacks.opReturnKey); new (tableType, @user.callbacks.opRightClick); new (tableType, @user.callbacks.opStruct2Click); new (tableType, @user.callbacks.option2click); new (tableType, @user.callbacks.resume); new (tableType, @user.callbacks.saveWindow); new (tableType, @user.callbacks.shutdown); new (tableType, @user.callbacks.startup); new (tableType, @user.callbacks.statusMessage); new (tableType, @user.callbacks.suspend); new (tableType, @user.callbacks.systemTrayIcon2Click); new (tableType, @user.callbacks.systemTrayIconRightClick); new (tableType, @user.callbacks.tcpSendMail)}; bundle { // clear applications paths in system.verbs.apps local (adrAppsTable = @system.verbs.apps, i); for i = 1 to sizeof (adrAppsTable^) { local (adrAppInfo = @adrAppsTable^ [i].appInfo); if defined (adrAppInfo^) { adrAppInfo^.path = ""}}}; bundle { // set up Frontier.tools.thread Frontier.tools.thread.ct = 0; Frontier.tools.thread.enabled = true}; bundle { // set up workspace new (tableType, @root.workspace); new (outlineType, @workspace.notepad)}; bundle { // miscellaneous new (tableType, @root.scratchpad); new (tableType, @system.deskscripts); new (tableType, @user.databases); new (tableType, @user.protocols); }};Çnew (tableType, @websites.["#data"]) bundle { // set up user.menus if flFirstRootRun { new (tableType, @user.menus)}; Çuser.menus.bookmarkMenu = userland.virginBookmarkMenu if not (defined (user.menus.customMenu)) { user.menus.customMenu = Frontier.data.virginCustomMenu}}; if flFirstRootRun { // open mainResponder.root and prefs.root bundle { // open mainResponder.root, hidden and add to user.databases local (appFolder = Frontier.getSubFolder ("apps")); if not defined ( [appFolder + "mainResponder.root"] ) { Frontier.installApp ("mainResponder.root", false)}}; bundle { // open prefs.root, hidden and add to user.databases local (f = Frontier.getSubFolder ("www") + "prefs.root"); if not (defined ([f])) { fileMenu.open (f, true);}; //open hidden ÇAdd an entry to the user.databases table. local (adrTable = @user.databases.["prefs.root"]); new (tableType, adrTable); adrTable^.f = file.getPathChar () + (f - Frontier.pathString); adrTable^.openOnStartup = true; adrTable^.runStartupScript = false; adrTable^.supportsSubscribe = false}}; Çbundle //initialize responders Çuser.webserver.responders.websiteFramework.data.docTree.samples = @websites.samples Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.allSites) Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.contents) Ç Çif defined (user.webserver.responders.manilaEdit) Çdelete (@user.webserver.responders.manilaEdit) ÇfileMenu.save () bundle { // miscellaneous variable initializations and checks, phase 2 of 2 system.menus.data.currentsuite = ""; system.menus.data.currentMenuType = nil; system.menus.data.currentmenu = 0; bundle { // check for presence of Psapi.dll if sys.os () == "WinNT" { if not (sys.appIsRunning (file.fileFromPath (Frontier.getProgramPath ()))) { // 11/27/04; 12:14:40 PM by TAC - would it be possible for Frontier to install this on its own? dialog.alert ("You need to run the Frontier Psapi Installer for certain Frontier verbs to work properly.")}}}}; bundle { //open the about window if the pref says we should Çadded 12/16/98; 6:47:28 PM by DW if not defined (user.prefs.openAboutWindow) { user.prefs.openAboutWindow = true}; if user.prefs.openAboutWindow { window.about ()}}; bundle { //initialize the log, next bit of code could add a log item Çadded 12/16/98; 6:52:40 PM by DW if defined (log.startup) { log.startup ()}}; bundle { //run the external startup script local (fname = "frontierStartupCommands.txt"); local (f = file.folderFromPath (Frontier.getProgramPath ()) + fname); if file.exists (f) { try { evaluate (string (file.readWholeFile (f)))} else { log.add ("Error running " + fname + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}; bundle { // tcp based services webserver.init (); // needs to load first betty.init (); // needs to load second soap.init ()}; bundle { // people based services people.init (); // needs to load first custody.init (); webEditServer.init ()}; bundle { //open all the databases that have openOnStartup true Çadded 12/16/98; 6:23:16 PM by DW if defined (user.databases) { if flOpenDatabases { local (i, flmsg = false); for i = 1 to sizeof (user.databases) { if typeOf (user.databases[i]) == tableType { //06/08/01 JES: avert item #1 errors with user.databases [i] { local (flopened = false); try { if openOnStartup { msg (this + ": Opening " + file.fileFromPath (f)); flmsg = true; fileMenu.open (f, hidden:true); flopened = true}} else { log.add ("Startup error opening guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}; if flopened { if defined (runStartupScript) { if runStartupScript { //PBS 10/7/99: check the value of runStartupScript: only run the script if the boolean is true local (adrscript = @[filespec (f)].["#startup"]); if defined (adrscript^) { try { adrscript^ ()} else { log.add ("Error running #startup script in guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}}}}}}; if flmsg { msg ("")}}}}; try { //04/28/2001 JES: prevent startup from failing if Tool installation fails. Frontier.tools.startup ()}; scheduler.init (); html.init (); bundle { // webBrowser webBrowser.init (); if system.environment.isMac { try {new (tableType, @user.odbEditors.data.openFiles)}}; //Empty out the list of externally-edited files. if system.environment.isWindows { user.webBrowser.winDefaultBrowserApp = file.findApplication ("htm")}}; bundle { // first root run, phase 2 of 3 if flFirstRootRun { bundle { // set up websites table and related with websites.["#ftpSite"] { folder = file.folderFromPath (Frontier.getProgramPath ()) + "Websites" + file.getPathChar (); Çfile.sureFolder (folder) url = file.fileToURL (folder); isLocal = true}; user.html.sites.default = websites.["#ftpSite"]}; bundle { // personalize this copy of Frontier, configure network settings, and complete the installation local (flWebBasedInstall = true); if flWebBasedInstall { Ç11/29/04; 11:17:45 AM by TAC - the following seems like it should be done as part of mainRepsonder startup, init. IIRC, members.root is a feature of mainResponder bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; bundle { // prep for web based install via mainResponder admin website local (portString = ""); if user.inetd.config.http2.port != 80 { portString = ":" + user.inetd.config.http2.port}; if not defined (system.temp.Frontier.setupFrontier) { new (tableType, @system.temp.Frontier.setupFrontier)}; system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = true; local (setupUrl = "http://127.0.0.1" + portString + "/setupFrontier"); if not defined (system.temp.installer) { new (tableType, @system.temp.installer)}; system.temp.installer.urlToOpen = setupUrl}} else { on infoDialog () { //prompt the user for name, org and initials on kernelCall (adrName, adrInitials, adrOrg, adrEmail) { kernel (dialog.getUserInfo)}; local (name, initials, organization, email); case sys.os () { "Win95"; "WinNT" { if not (kernelCall (@name, @initials, @organization, @email)) { return (false)}; if initials == "" { dialog.alert ("You must specify your initials."); infoDialog ()}; user.prefs.name = name; user.prefs.initials = initials; user.prefs.organization = organization; user.prefs.mailAddress = email}; "MacOS" { bundle { //initialize user.prefs.name etc using info from Internet Config try { name = ic.geticpreference (ic.eventinfo.realName)}; try { organization = ic.geticpreference (ic.eventinfo.organization)}; try { email = ic.geticpreferece (ic.eventinfo.emailAddress)}; user.prefs.name = name; user.prefs.organization = organization; if name != "" { local (i); user.prefs.initials = name [1]; for i = 3 to sizeof (name) { if name [i] == ' ' { user.prefs.initials = user.prefs.initials + name [i+1]}}}}; card.run (@system.cards.userInfoDialog)}}; return (true)}; infoDialog ()}}; //AR 09/27/04 : personalize install ÇrootUpdates.getCurrent ("Frontier") // 11/29/04; 6:57:54 PM by TAC - if we get a root update then we'll need to use rootUpdates.update bundle { // about window local (w); window.about (); w = window.frontMost (); window.zoom (w); menus.scripts.styleCommand ("medium"); window.setPosition (w, 25, 75); };Çwindow.close (s) bundle { // license edit (@system.startup.license); // 12/4/04; 9:26:35 PM by TAC - i rather do this near the beginning of phase 1 firstRootRun but had a problem with this window and setting up the quick script window wp.setSelect (0, 0)}}}; system.callbacks.startup (); //call user's startup scripts bundle { // build menu bar system.menus.buildMenuBar (); system.menus.buildSuitesSubmenu ()}; //5.0 Frontier.enableAgents (flEnableAgents); if flEnableHttpServer { //6.0, daemons don't start up until all the startup code has run new (tableType, @user.inetd.listens); inetd.start ()}; //start up all daemons with startup set true if flFirstRootRun { // open a url and set first root run to false if defined (system.temp.installer.urlToOpen) { Çwindow.update ("About Frontier") webBrowser.openUrl (system.temp.installer.urlToOpen); webBrowser.bringToFront ()}; user.prefs.firstRootRun = false}; system.temp.Frontier.startingUp = false; //signal to all who care, let the hits begin! msg (""); fileMenu.save (); Ç Çbundle //license agreement Çlocal (editLicense = false) Çif sys.os () == "MacOS" Çon itemhit (itemnumber) Çcase (itemnumber) Ç1 Çyes ÇeditLicense = true Çreturn (false) Çstop processing the dialog Ç2 Çno Çreturn (false) Çstop processing the dialog Çreturn (true) Çkeep processing the dialog Çdialog.run (517, 1, @itemhit) Çelse Çif dialog.yesNo ("Frontier is licensed software. Do you want to read the license agreement now?") ÇeditLicense = true Çif editLicense Çbundle //get root update ÇproxyInit () Çif user.prefs.serialNumber != "" and not (string.lower (user.prefs.serialNumber) contains "trial") ÇrootUpdates.init () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.startup.startupScript ! ÇChanges Ç12/24/05; 12:33:32 PM by TAC Çprefs.root now has a #startup script, deal with it Ç11/10/05; 4:24:48 PM by TAC Çmoved system.temp.Frontier/starting up after first if firstRootRun check was causing startup problem Ç11/5/05; 12:00:32 PM by TAC Çmoved system.temp.Frontier check back to top of script Ç10/9/05; 3:39:07 PM by TAC Çwhen storing prefs.root path, store realative path Çuse table.copyUndefinedContents to copy some item Çmove some of the user prefs initializations into Frontier.data.userPrefs Çrearrange script so that some initializations can happen outside of the first root run, this should make it easier to add new items and not have them get missed because the first root run had already been run once Ç10/4/05; 7:26:36 PM by TAC Çupon check for presence of Psapi.dll, don't use hard coded application name Ç9/26/05; 4:30:14 PM by TAC Çadded user.prefs.flReplaceDialogExpertMode Ç8/23/05; 7:22:18 PM by TAC Çadded user.prefs.flCompactModalMenus Ç7/14/05; 10:35:39 AM by TAC Çsystem.menus.data.currentMenuType set to nil so agent will update modal menu properly upon relaunch Ç7/6/05; 12:21:38 PM by TAC Çchanged user.callbacks.sendmail to user.callbacks.tcpSendMail Çadded user.prefs.mailHostPort Ç6/15/05; 6:52:11 PM by TAC Çrewrite for Open Source release, bring in code from startup.startupScript, userland.firstRootRun, userland.finishInstall, and userland.cleanRoot ÇOld code Çstartup.startupScript <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/startup/startupScript?rev=1.1> Çuserland.firstRootRun <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/firstRootRun?rev=1.1> Çuserland.finishInstall <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/finishInstall?rev=1.1> Çuserland.cleanRoot <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/frontierRoot/system/verbs/builtins/userland/Attic/cleanRoot?rev=1.1> Ç06/08/01; 11:24:35 PM by JES ÇWhen opening databases defined at user.databases, skip objects which aren't tables. This avoids the condition where startup wouldn't complete, if there's an item #1 in the user.databases table. Ç06/02/01; 8:34:20 PM by PBS ÇDo the web-based install and open the Control Panel if this is the first root run. Ç04/28/01; 7:48:46 PM by JES ÇCall Frontier.tools.startup in a try block, so that the startup process will finish even if Tools installation fails. Ç04/20/01; 4:49:05 PM by JES ÇCall tools.startup to install Tools at startup. Ç10/7/99; 4:20:26 PM by PBS ÇOnly run the #startup script in a guest database if runStartupScript exists and is true. Previously, it would be run whether runStartupScript was true or false. Çhttp://frontier.userland.com/stories/storyReader$1760 Ç10/6/99; 10:21:35 PM by PBS ÇOnly set the taskTime for the overnight task if it's in the past. This fixes a bug when the taskTime was before midnight, but it was being set for the next day, so the overnight task wouldn't run. Çhttp://frontier.userland.com/stories/storyReader$1761 Ç8/19/99; 6:44:48 AM by DW ÇMake sure that taskTimes in user.scheduler.tasks are in the future. ÇWe do this much more quickly than scheduler.monitor would. Çhttp://discuss.userland.com/msgReader$9658 ÇThis script runs when Frontier opens the Frontier.root file. if defined (system.temp.Frontier) { // only run the startup script once return}; local (flEnableAgents = true, flOpenDatabases = true, flEnableHttpServer = true); // can be set by the external startup script local (flFirstRootRun = true); bundle { // miscellaneous variable initializations and checks, phase 1 of 2 Frontier.pathString = file.folderFromPath (frontier.getFilePath ())}; if defined (user.prefs.firstRootRun) { flFirstRootRun = user.prefs.firstRootRun}; if flFirstRootRun { // disable agents, hide all windows, wipe temp and user Frontier.enableAgents (false); // try to keep agents from reporting errors while window.frontmost () != "" { // open windows can mess things up later on window.hide (window.frontmost ())}; Çreturn (false) // enable for testing new (tableType, @system.temp); new (tableType, @root.user)}; bundle { // system.temp.Frontier, we are starting up new (tableType, @system.temp.Frontier); system.temp.Frontier.startupTime = clock.now (); system.temp.Frontier.startingUp = true}; backups.init (); batchExporter.init (); export.init (); rootUpdates.init (); // set up user.rootUpdates, even though root updates uses tcp, its ok to set up here as no tcp calls are made at this time webEdit.init (); bundle { // set up user.prefs if flFirstRootRun { new (tableType, @user.prefs); bundle { // set up user.prefs.commonStyles case sys.os () { "MacOS" { if system.environment.isCarbon { user.prefs.commonStyles = Frontier.data.commonStylesMacCarbon} else { user.prefs.commonStyles = Frontier.data.commonStylesMac}}; "Win95"; "WinNT" { user.prefs.commonStyles = Frontier.data.commonStylesWin}}}}; table.copyUndefinedContents (@Frontier.data.userPrefs, @user.prefs); bundle { // set up user.prefs.dialogs if flFirstRootRun { new (tableType, @user.prefs.dialogs)}; table.copyUndefinedContents (@Frontier.data.userPrefs.dialogs, @user.prefs.dialogs)}; bundle { // set up user.prefs.search if flFirstRootRun { new (tableType, @user.prefs.search)}; table.copyUndefinedContents (@Frontier.data.userPrefs.search, @user.prefs.search); if not (defined (user.prefs.search.replaceWith)) { user.prefs.search.replaceWith = Frontier.version ()}}; Frontier.setupUserPrefsFonts ()}; if flFirstRootRun { bundle { // set up the quick script window clipboard.putvalue ("dialog.notify (\"Hello World!\")"); window.quickScript (); editmenu.selectall (); editmenu.paste (); window.close ("Quick Script")}; bundle { // set up root window local (w = "root"); window.open (w); window.setPosition (w, 0, 0); editMenu.setFont (user.prefs.fonts.tableFont); editMenu.setFontSize (user.prefs.fonts.tableFontSize); window.zoom (w)}; bundle { // set up user.callbacks new (tableType, @user.callbacks); new (tableType, @user.callbacks.closeWindow); new (tableType, @user.callbacks.cmd2click); new (tableType, @user.callbacks.compileChangedScript); new (tableType, @user.callbacks.control2click); new (tableType, @user.callbacks.fileWriteWholeFile); new (tableType, @user.callbacks.opCollapse); new (tableType, @user.callbacks.opCursorMoved); new (tableType, @user.callbacks.openWindow); new (tableType, @user.callbacks.opExpand); new (tableType, @user.callbacks.opInsert); new (tableType, @user.callbacks.opReturnKey); new (tableType, @user.callbacks.opRightClick); new (tableType, @user.callbacks.opStruct2Click); new (tableType, @user.callbacks.option2click); new (tableType, @user.callbacks.resume); new (tableType, @user.callbacks.saveWindow); new (tableType, @user.callbacks.shutdown); new (tableType, @user.callbacks.startup); new (tableType, @user.callbacks.statusMessage); new (tableType, @user.callbacks.suspend); new (tableType, @user.callbacks.systemTrayIcon2Click); new (tableType, @user.callbacks.systemTrayIconRightClick); new (tableType, @user.callbacks.tcpSendMail)}; bundle { // clear applications paths in system.verbs.apps local (adrAppsTable = @system.verbs.apps, i); for i = 1 to sizeof (adrAppsTable^) { local (adrAppInfo = @adrAppsTable^ [i].appInfo); if defined (adrAppInfo^) { adrAppInfo^.path = ""}}}; bundle { // set up Frontier.tools.thread Frontier.tools.thread.ct = 0; Frontier.tools.thread.enabled = true}; bundle { // set up workspace new (tableType, @root.workspace); new (outlineType, @workspace.notepad)}; bundle { // miscellaneous new (tableType, @root.scratchpad); new (tableType, @system.deskscripts); new (tableType, @user.databases); new (tableType, @user.protocols); }};Çnew (tableType, @websites.["#data"]) bundle { // set up user.menus if flFirstRootRun { new (tableType, @user.menus)}; Çuser.menus.bookmarkMenu = userland.virginBookmarkMenu if not (defined (user.menus.customMenu)) { user.menus.customMenu = Frontier.data.virginCustomMenu}}; if flFirstRootRun { // open mainResponder.root and prefs.root bundle { // open mainResponder.root, hidden and add to user.databases local (appFolder = Frontier.getSubFolder ("apps")); if not defined ( [appFolder + "mainResponder.root"] ) { Frontier.installApp ("mainResponder.root", false)}}; bundle { // open prefs.root, hidden and add to user.databases local (f = Frontier.getSubFolder ("www") + "prefs.root"); if not (defined ([f])) { fileMenu.open (f, true);}; //open hidden ÇAdd an entry to the user.databases table. local (adrTable = @user.databases.["prefs.root"]); new (tableType, adrTable); adrTable^.f = file.getPathChar () + (f - Frontier.pathString); adrTable^.openOnStartup = true; adrTable^.runStartupScript = true; adrTable^.supportsSubscribe = false; bundle { // run the startup script local (adrStartupScript = @[adrTable^.f].["#startup"]); if defined (adrStartupScript^) { adrStartupScript^ ()}}}}; // run the startup script Çbundle //initialize responders Çuser.webserver.responders.websiteFramework.data.docTree.samples = @websites.samples Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.allSites) Çtry Çdelete (@user.webserver.responders.websiteFramework.data.docTree.contents) Ç Çif defined (user.webserver.responders.manilaEdit) Çdelete (@user.webserver.responders.manilaEdit) ÇfileMenu.save () bundle { // miscellaneous variable initializations and checks, phase 2 of 2 system.menus.data.currentsuite = ""; system.menus.data.currentMenuType = nil; system.menus.data.currentmenu = 0; bundle { // check for presence of Psapi.dll if sys.os () == "WinNT" { if not (sys.appIsRunning (file.fileFromPath (Frontier.getProgramPath ()))) { // 11/27/04; 12:14:40 PM by TAC - would it be possible for Frontier to install this on its own? dialog.alert ("You need to run the Frontier Psapi Installer for certain Frontier verbs to work properly.")}}}}; bundle { //open the about window if the pref says we should Çadded 12/16/98; 6:47:28 PM by DW if not defined (user.prefs.openAboutWindow) { user.prefs.openAboutWindow = true}; if user.prefs.openAboutWindow { window.about ()}}; bundle { //initialize the log, next bit of code could add a log item Çadded 12/16/98; 6:52:40 PM by DW if defined (log.startup) { log.startup ()}}; bundle { //run the external startup script local (fname = "frontierStartupCommands.txt"); local (f = file.folderFromPath (Frontier.getProgramPath ()) + fname); if file.exists (f) { try { evaluate (string (file.readWholeFile (f)))} else { log.add ("Error running " + fname + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}; bundle { // tcp based services webserver.init (); // needs to load first betty.init (); // needs to load second soap.init ()}; bundle { // people based services people.init (); // needs to load first custody.init (); webEditServer.init ()}; bundle { //open all the databases that have openOnStartup true Çadded 12/16/98; 6:23:16 PM by DW if defined (user.databases) { if flOpenDatabases { local (i, flmsg = false); for i = 1 to sizeof (user.databases) { if typeOf (user.databases[i]) == tableType { //06/08/01 JES: avert item #1 errors with user.databases [i] { local (flopened = false); try { if openOnStartup { msg (this + ": Opening " + file.fileFromPath (f)); flmsg = true; fileMenu.open (f, hidden:true); flopened = true}} else { log.add ("Startup error opening guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}; if flopened { if defined (runStartupScript) { if runStartupScript { //PBS 10/7/99: check the value of runStartupScript: only run the script if the boolean is true local (adrscript = @[filespec (f)].["#startup"]); if defined (adrscript^) { try { adrscript^ ()} else { log.add ("Error running #startup script in guest database " + nameof (user.databases [i]) + ": \"" + tryError + "\"", "startupError", flwptext:true)}}}}}}}}; if flmsg { msg ("")}}}}; try { //04/28/2001 JES: prevent startup from failing if Tool installation fails. Frontier.tools.startup ()}; scheduler.init (); html.init (); bundle { // webBrowser webBrowser.init (); if system.environment.isMac { try {new (tableType, @user.odbEditors.data.openFiles)}}; //Empty out the list of externally-edited files. if system.environment.isWindows { user.webBrowser.winDefaultBrowserApp = file.findApplication ("htm")}}; bundle { // first root run, phase 2 of 3 if flFirstRootRun { bundle { // set up websites table and related with websites.["#ftpSite"] { folder = file.folderFromPath (Frontier.getProgramPath ()) + "Websites" + file.getPathChar (); Çfile.sureFolder (folder) url = file.fileToURL (folder); isLocal = true}; user.html.sites.default = websites.["#ftpSite"]}; bundle { // personalize this copy of Frontier, configure network settings, and complete the installation local (flWebBasedInstall = true); if flWebBasedInstall { Ç11/29/04; 11:17:45 AM by TAC - the following seems like it should be done as part of mainRepsonder startup, init. IIRC, members.root is a feature of mainResponder bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; bundle { // prep for web based install via mainResponder admin website local (portString = ""); if user.inetd.config.http2.port != 80 { portString = ":" + user.inetd.config.http2.port}; if not defined (system.temp.Frontier.setupFrontier) { new (tableType, @system.temp.Frontier.setupFrontier)}; system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = true; local (setupUrl = "http://127.0.0.1" + portString + "/setupFrontier"); if not defined (system.temp.installer) { new (tableType, @system.temp.installer)}; system.temp.installer.urlToOpen = setupUrl}} else { on infoDialog () { //prompt the user for name, org and initials on kernelCall (adrName, adrInitials, adrOrg, adrEmail) { kernel (dialog.getUserInfo)}; local (name, initials, organization, email); case sys.os () { "Win95"; "WinNT" { if not (kernelCall (@name, @initials, @organization, @email)) { return (false)}; if initials == "" { dialog.alert ("You must specify your initials."); infoDialog ()}; user.prefs.name = name; user.prefs.initials = initials; user.prefs.organization = organization; user.prefs.mailAddress = email}; "MacOS" { bundle { //initialize user.prefs.name etc using info from Internet Config try { name = ic.geticpreference (ic.eventinfo.realName)}; try { organization = ic.geticpreference (ic.eventinfo.organization)}; try { email = ic.geticpreferece (ic.eventinfo.emailAddress)}; user.prefs.name = name; user.prefs.organization = organization; if name != "" { local (i); user.prefs.initials = name [1]; for i = 3 to sizeof (name) { if name [i] == ' ' { user.prefs.initials = user.prefs.initials + name [i+1]}}}}; card.run (@system.cards.userInfoDialog)}}; return (true)}; infoDialog ()}}; //AR 09/27/04 : personalize install ÇrootUpdates.getCurrent ("Frontier") // 11/29/04; 6:57:54 PM by TAC - if we get a root update then we'll need to use rootUpdates.update bundle { // about window local (w); window.about (); w = window.frontMost (); window.zoom (w); menus.scripts.styleCommand ("medium"); window.setPosition (w, 25, 75); };Çwindow.close (s) bundle { // license edit (@system.startup.license); // 12/4/04; 9:26:35 PM by TAC - i rather do this near the beginning of phase 1 firstRootRun but had a problem with this window and setting up the quick script window wp.setSelect (0, 0)}}}; system.callbacks.startup (); //call user's startup scripts bundle { // build menu bar system.menus.buildMenuBar (); system.menus.buildSuitesSubmenu ()}; //5.0 Frontier.enableAgents (flEnableAgents); if flEnableHttpServer { //6.0, daemons don't start up until all the startup code has run new (tableType, @user.inetd.listens); inetd.start ()}; //start up all daemons with startup set true if flFirstRootRun { // open a url and set first root run to false if defined (system.temp.installer.urlToOpen) { Çwindow.update ("About Frontier") webBrowser.openUrl (system.temp.installer.urlToOpen); webBrowser.bringToFront ()}; user.prefs.firstRootRun = false}; system.temp.Frontier.startingUp = false; //signal to all who care, let the hits begin! msg (""); fileMenu.save (); Ç Çbundle //license agreement Çlocal (editLicense = false) Çif sys.os () == "MacOS" Çon itemhit (itemnumber) Çcase (itemnumber) Ç1 Çyes ÇeditLicense = true Çreturn (false) Çstop processing the dialog Ç2 Çno Çreturn (false) Çstop processing the dialog Çreturn (true) Çkeep processing the dialog Çdialog.run (517, 1, @itemhit) Çelse Çif dialog.yesNo ("Frontier is licensed software. Do you want to read the license agreement now?") ÇeditLicense = true Çif editLicense Çbundle //get root update ÇproxyInit () Çif user.prefs.serialNumber != "" and not (string.lower (user.prefs.serialNumber) contains "trial") ÇrootUpdates.init () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:39:20
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/rootUpdates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2004 Modified Files: update Log Message: updated root update code Index: update =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/rootUpdates/update,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** update 13 Jun 2005 19:59:03 -0000 1.2 --- update 25 Dec 2005 01:39:10 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.rootUpdates.update ! on update (adrInRoot = table.getcursoraddress (), flQuietMode=false, adrCtNewParts=nil) { ÇChanges Ç6/13/05; 12:53:52 PM by TAC Çdisabled trial version and serial number checks Ç1/12/04; 12:48:36 AM by JES ÇChanged default updates server from madrid.userland.com to updates.userland.com. Ç8/28/02; 10:48:23 PM by JES ÇAdded support for two new callbacks: Çuser.rootUpdates.callbacks.beforeInstallPart -- scripts in this table are called with two parameters: the address of the part, and the change note. If any script returns false, then the part is not installed. No error is generated -- it's up to the callback script to provide feedback to the user. Çuser.rootUpdates.callbacks.afterInstallPart -- scripts in this table are called with two parameters: the address of the part, and the change note. The return value is ignored. Ç4/16/02; 4:34:53 PM by JES ÇBug fix: Store the new part count in adrCtNewParts^ even if no new parts were loaded. Ç1/21/02; 2:25:42 PM by JES ÇUse a string comparison to determine whether we're getting updates from radioupdates.userland.com, instead of a call to tcp.equalNames, since tcp.equalNames fails for some proxy server users. Ç1/7/02; 9:09:40 PM by PBS ÇIf getting Radio updates from radioupdates.userland.com, send your usernum as an additional parameter. Ç8/6/01; 2:22:37 PM by PBS ÇWhen updating Manila or mainResponder, send the serial number. Ç01/21/01; 6:03:11 PM by JES ÇAdded optional parameter, adrCtNewParts. If not nil, the number of updated parts is assigned to adrCtNewParts^. Ç08/20/00; 11:49:35 AM by PBS ÇIf the server returns a last update time, use that instead of clock.now (). This fixes problems with people missing updates due to having clocks out-of-synch with the server. This way, the server's time is always used. Ç06/17/00; 11:16:23 PM by PBS ÇUse new root updates timeout pref. ÇTuesday, November 16, 1999 at 1:43:53 AM by AR ÇMake sure backup folder exists before backing up GDBs. ÇAdded flQuietMode parameter, defaulting to false. If it's true, we suppress all server-unfriendly interaction like putting up dialogs or opening the outline of new parts, regardless of the settings in user.rootUpdates. Ç10/7/99; 6:43:29 PM by DW ÇNew pref, user.rootupdates.prefs.flShowUpdatesToUser, defaults true, initialized in rootUpdates.init. ÇNew pref, user.rootupdates.prefs.adrOutlineForUser, defaults to @user.rootUpdates.updateOutline. Çif flShowUpdatesToUser is true, we create the outline if it doesn't exist and add a top-level headline with the date and time and the name of the database being updated. Each subordinate entry is the address of an object that's been updated. Underneath the address is the explanation of the change, if available. Çbundle //trial, 6/13/05; 12:53:52 PM by TAC - disabled Çif defined (userland.trialVersionCheck) Çif userland.trialVersionCheck () ÇscriptError ("Can't update the database because the trial period has expired.") rootUpdates.init (); local (adrroot = table.getrootaddress (adrInRoot)); local (alist = string.parseaddress (adrroot)); local (f = window.getFile (alist [1])); local (fname = file.filefrompath (f)); if not string.lower (fname) endswith ".root" { scripterror ("Can't update the file because its name doesn't end with .root.")}; local (channelname = string.mid (fname, 1, sizeof (fname) - 5)); local (adrtable = @user.rootUpdates.servers.[channelname]); if not defined (adrtable^) { new (tabletype, adrtable); adrtable^.server = "updates.userland.com"; //"madrid.userland.com" adrtable^.port = 80; adrtable^.method = "nirvanaServer.subscriptions.update"; adrtable^.dbname = fname; adrtable^.lastupdate = "Fri, 16 Oct 1998 12:00:00 GMT"; //indicate that it's never been updated adrtable^.autobackup = true; //if true the backup will be of docServer.root, not Frontier.root adrtable^.dialogs = true; //set this false if you're updating automatically thru the scheduler adrtable^.openLog = true; //show the log file of changes adrtable^.URL = ""} else { if string.lower (adrtable^.server) == "madrid.userland.com" { adrtable^.server = "updates.userland.com"}}; bundle { //the responder name on the server changed if adrtable^.method == "mainResponder.subscriptions.update" { adrtable^.method = "nirvanaServer.subscriptions.update"}}; on getUpdate (serverName, adrInRoot = nil) { //an enhanced version of rootupdates.getUpdate Ç10/18/98; 11:33:30 AM by DW ÇMade it guest database-aware. ÇIf adrInRoot is specified, it's assumed to point into the guest db that's getting updated ÇAdded a field to the prefs record, dbname, which names the guest database that's being shared ÇIt's an index into user.mainresponder.databases on the server. ÇThe handler for this is at mainresponder.rpchandlers.subscriptions.update. local (frontierVersion = Frontier.version ()); local (platform = string.mid (sys.os (), 1, 3)); local (ctnewparts = 0); local (flDialogs = true); local (flLogOutlineOpened = false, flNewLogOutline = false); local (adrPrefs = @user.rootUpdates.servers.[serverName]); local (flguestdb = false, addressprefixstring); //10/18/98 DW bundle { //gather info about guest database if adrInRoot != nil and string.lower (channelname) != "frontier" { addressprefixstring = string (table.getRootAddress (adrInRoot)); flguestdb = true}}; if defined (adrPrefs^.dialogs) and not adrPrefs^.dialogs { flDialogs = false}; if flQuietMode { //AR 11/15/1999 flDialogs = false}; Çif not defined (user.prefs.serialNumber) // 6/13/05; 12:53:52 PM by TAC - disabled Çuser.prefs.serialNumber = "" try { //try to get the root update from the server if flDialogs { local (prompt = "Connect with " + adrPrefs^.server + " to get latest update"); if flguestdb { prompt = prompt + " of " + adrprefs^.dbname}; prompt = prompt + "?"; if not dialog.confirm (prompt) { return (false)}}; window.about (); local (sn); Çif adrPrefs == @user.rootUpdates.servers.Frontier ÇOnly send Frontier serial number when getting Frontier.root udpate. ÇThu, Mar 18, 1999 at 3:21:10 PM by PBS Çsn = user.prefs.serialNumber local (rpcPath = user.betty.prefs.rpcClientDefaultPath); Çbundle // 6/13/05; 12:53:52 PM by TAC - disabled, no serial number check needed for open source release Çcase true //PBS 08/06/01: send serial number for Frontier, Manila, and mainResponder ÇadrPrefs == @user.rootUpdates.servers.Radio ÇadrPrefs == @user.rootUpdates.servers.radioCommunityServer ÇadrPrefs == @user.rootUpdates.servers.serverMonitor ÇadrPrefs == @user.rootUpdates.servers.Prefs ÇadrPrefs == @user.rootUpdates.servers.Frontier ÇadrPrefs == @user.rootUpdates.servers.Manila ÇadrPrefs == @user.rootUpdates.servers.mainResponder Çsn = user.prefs.serialNumber Çif string.lower (adrprefs^.server) endswith ".userland.com" Çtry //add path args to rpcPath Çlocal (args); new (tableType, @args) Çargs.org (xn--args-zoa.org) = user.prefs.organization Çargs.name = user.prefs.name Çargs.email = user.prefs.mailAddress Çargs.sn = user.prefs.serialNumber Çif defined (config.mainResponder.domains) Çargs.domains = sizeOf (config.mainResponder.domains) Çelse Çargs.domains = 0 Çif defined (config.manila.sites) Çargs.sites = sizeOf (config.manila.sites) Çelse Çargs.sites = 0 Çif defined (radioCommunityServerData.users) Çargs.rcsUsers = sizeOf (radioCommunityServerData.users) Çelse Çargs.rcsUsers = 0 ÇrpcPath = rpcPath + "?" + webserver.encodeArgs (@args) Çelse Çif defined (adrPrefs^.serialNum) Çsn = adrPrefs^.serialNum Çelse Çsn = 0 local (paramlist = {adrPrefs^.lastupdate, platform, sn, user.prefs.name, user.prefs.mailAddress, frontierVersion}); bundle { //PBS 01/07/02: send usernum to radioupdates.userland.com Çif tcp.equalNames (adrPrefs^.server, "radioupdates.userland.com") Çparamlist = paramlist + user.radio.prefs.usernum if string.lower (adrPrefs^.server) == "radioupdates.userland.com" { paramlist = paramlist + user.radio.prefs.usernum}}; if flguestdb { paramlist = {adrprefs^.dbname} + {tcp.addressDecode (tcp.myAddress ())} + paramlist}; local (newpartstable); local (i); msg ("Connecting to " + adrPrefs^.server + " to get " + serverName + " update..."); newpartstable = betty.rpc.client (adrPrefs^.server, adrPrefs^.port, adrPrefs^.method, @paramlist, false, rpcPath:rpcPath, ticksToTimeOut:user.rootUpdates.prefs.timeout); Çbundle //original call Çnewpartstable = betty.rpc.client (adrPrefs^.server, adrPrefs^.port, adrPrefs^.method, @paramlist, false, ticksToTimeOut:user.rootUpdates.prefs.timeout) if not defined (newPartsTable.parts) { if newPartsTable beginsWith "There are no new or changed parts available." or newPartsTable beginsWith "Your root is already updated" { msg (""); if flDialogs { dialog.notify (newPartsTable)} else { msg (newPartsTable)}; if adrCtNewParts != nil { //4/16/02; 4:33:24 PM by JES: make the new part count available to the caller, even if there are no new parts adrCtNewParts^ = ctNewParts}; return (true)}}; if adrPrefs^.autobackup { //10/18/98; 11:36:58 AM by DW if flguestdb { backups.init (); //make sure user.backups.folder is set local (alist = string.parseaddress (adrInRoot)); local (source = alist [1]); filemenu.save (source); local (dest); bundle { //set dest to point at the destination file dest = file.filefrompath (source); if string.lower (dest) endswith ".root" { dest = string.delete (dest, sizeof (dest) - 4, 5); //pop off .root dest = dest + "." + user.backups.nextBackup + ".root"} else { dest = dest + "." + user.backups.nextBackup}; dest = user.backups.folder + dest; user.backups.nextBackup++}; file.sureFilePath (dest); //AR 11/15/1999 file.copy (source, dest); filemenu.save (); msg (dest + " is " + string.megabytestring (file.size (dest)))} else { backups.backuproot ()}}; for i = 1 to sizeof (newpartstable.parts) { local (adrnewpart = @newpartstable.parts [i]); local (bytes = binary (base64.decode (adrnewpart^))); local (flpartinstalled = true); setBinaryType (@bytes, tableType); unpack (@bytes, adrnewpart); on installPart (adrpart) { if defined (user.rootUpdates.protected) { //Don't import into these places. local (j); for j = 1 to sizeOf (user.rootUpdates.protected) { local (oneItem = address (user.rootUpdates.protected [j])); if table.tableContains (oneItem, adrpart^.adr) { //Don't install. flpartinstalled = false; return (true)}}}; if defined (adrpart^.platform) { if string.lower (adrpart^.platform) != "both" { // Only install parts for this platform. if string.lower (adrpart^.platform) != string.lower (platform) { return (true)}}}; try { if flguestdb { //we got a relative address, convert it to a real address adrpart^.adr = address (addressprefixstring + "." + adrpart^.adr)}; msg ("Importing " + adrpart^.adr + "."); local (adrcallback, ixcallback, ctcallbacks, flInstallPart = true); bundle { //call beforeInstallPart callbacks ctcallbacks = sizeOf (user.rootUpdates.callbacks.beforeInstallPart); for ixcallback = 1 to ctcallbacks { local (adrcallback = @user.rootUpdates.callbacks.beforeInstallPart[ixcallback] ); try { while typeOf (adrcallback^) == addressType { adrcallback = adrcallback^}; if not adrcallback^ (adrpart^.adr, string (adrpart^.changes) ) { flInstallPart = false; break}}}}; if flInstallPart { adrpart^.adr^ = adrpart^.data}; bundle { //call afterInstallPart callbacks ctcallbacks = sizeOf (user.rootUpdates.callbacks.afterInstallPart); for ixcallback = 1 to ctcallbacks { local (adrcallback = @user.rootUpdates.callbacks.afterInstallPart[ixcallback] ); try { while typeOf (adrcallback^) == addressType { adrcallback = adrcallback^}; adrcallback^ (adrpart^.adr, string (adrpart^.changes) )}}}} else { flpartinstalled = false; if flDialogs { if not dialog.yesNo ("Installation of \"" + adrpart^.adr + "\" failed. Continue installation?") { return (false)}}}; local (logline); bundle { //clean up address so you can 2click on it logline = string (adrpart^.adr); local (ix = string.patternmatch ("].", logline)); if ix != 0 { logline = string.delete (logline, 1, ix + 1)}}; bundle { //log the update on cleanNote (s) { if s != "" { s = string.replaceAll (s, "\r\n", "\r"); s = string.replace (s, ": ", ":\r"); s = string.replaceAll (s, ". ", ".\r"); s = string.replaceAll (s, "-- ", "--\r"); s = "Changed " + s; s = string.replaceAll (s, "\r\r\r\r", "\r\r"); s = string.replaceAll (s, "\r\r\r", "\r\r"); s = string.popTrailing (s, "\r")}; return (s)}; local (changenote = cleanNote (string (adrpart^.changes))); export.addToLog (logline, adrPrefs^.url, changenote); if user.rootupdates.prefs.flShowUpdatesToUser { if not flLogOutlineOpened { if not defined (user.rootupdates.prefs.adrOutlineForUser^) { new (outlinetype, user.rootupdates.prefs.adrOutlineForUser); local (oldtarget = target.set (user.rootupdates.prefs.adrOutlineForUser)); op.setLineText (user.rootupdates.prefs.adrOutlineForUser + " created on " + clock.now ()); target.set (oldtarget); flNewLogOutline = true}; local (oldtarget = target.set (user.rootupdates.prefs.adrOutlineForUser)); op.firstSummit (); op.insert ("Updated " + fname + " on " + clock.now (), up); target.set (oldtarget); flLogOutlineOpened = true}; local (oldtarget = target.set (user.rootupdates.prefs.adrOutlineForUser)); op.insert (logline, right); if sizeof (changenote) > 0 { op.insert (changenote, right); op.go (left, 1); op.collapse ()}; op.go (left, 1); target.set (oldtarget)}}; return (true)}; if not installPart (adrnewpart) { break}; if flpartinstalled { ctnewparts++}}; if defined (newPartsTable.lastUpdateTime) { //PBS 08/20/00: get last update time from server, if supplied adrPrefs^.lastUpdate = newPartsTable.lastUpdateTime} else { //PBS 08/20/00: fallback -- use clock.now () to set last update time adrPrefs^.lastUpdate = date.netStandardString (clock.now ())}; adrPrefs^.serialNum = newPartsTable.serialNum; if flguestdb { msg ("Saving " + adrprefs^.dbname + "..."); fileMenu.saveMyRoot (adrInRoot); msg ("")} else { menu.installMainMenu (); system.menus.buildSuitesSubMenu (); //re-build in case any new suites were imported. msg ("Saving Frontier.root..."); fileMenu.save (); msg ("")}; if flLogOutlineOpened and not flQuietMode { edit (user.rootupdates.prefs.adrOutlineForUser); if flNewLogOutline { window.zoom (user.rootupdates.prefs.adrOutlineForUser)}} else { thread.sleepFor (0); if ctnewparts == 1 { if flDialogs { dialog.alert ("1 new part loaded from \"" + adrPrefs^.server + "\".")} else { msg ("1 new part loaded from \"" + adrPrefs^.server + "\".")}} else { if flDialogs { dialog.alert (ctnewparts + " new parts loaded from \"" + adrPrefs^.server + "\".")} else { msg (ctnewparts + " new parts loaded from \"" + adrPrefs^.server + "\".")}}}} else { //handle errors on alert (message) { if flDialogs { return (dialog.alert (message))}; scriptError (message)}; local (lowerError = string.lower (tryerror)); local (errmsg = "Can't update the root because "); case true { lowerError contains "socket is not connected" { alert (errmsg + "the server is not responding.")}; lowerError contains "can't get the address of"; lowerError contains "poorly formed xml text"; lowerError contains "missing tag" { alert (errmsg + "the server timed out.")}} else { alert (errmsg + "\"" + tryError + ".\"")}; return (false)}; if adrCtNewParts != nil { //01/21/01 JES: make the new part count available to the caller adrCtNewParts^ = ctNewParts}; return (true)}; getUpdate (channelname, adrroot)}; Çbundle //test code Çupdate (@root) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.rootUpdates.update ! on update (adrInRoot = table.getcursoraddress (), flQuietMode=false, adrCtNewParts=nil) { ÇChanges Ç12/23/05; 9:45:17 PM by TAC Çupdated root update code Ç6/13/05; 12:53:52 PM by TAC Çdisabled trial version and serial number checks Ç1/12/04; 12:48:36 AM by JES ÇChanged default updates server from madrid.userland.com to updates.userland.com. Ç2002 Ç8/28/02; 10:48:23 PM by JES ÇAdded support for two new callbacks: Çuser.rootUpdates.callbacks.beforeInstallPart -- scripts in this table are called with two parameters: the address of the part, and the change note. If any script returns false, then the part is not installed. No error is generated -- it's up to the callback script to provide feedback to the user. Çuser.rootUpdates.callbacks.afterInstallPart -- scripts in this table are called with two parameters: the address of the part, and the change note. The return value is ignored. Ç4/16/02; 4:34:53 PM by JES ÇBug fix: Store the new part count in adrCtNewParts^ even if no new parts were loaded. Ç1/21/02; 2:25:42 PM by JES ÇUse a string comparison to determine whether we're getting updates from radioupdates.userland.com, instead of a call to tcp.equalNames, since tcp.equalNames fails for some proxy server users. Ç1/7/02; 9:09:40 PM by PBS ÇIf getting Radio updates from radioupdates.userland.com, send your usernum as an additional parameter. Ç8/6/01; 2:22:37 PM by PBS ÇWhen updating Manila or mainResponder, send the serial number. Ç01/21/01; 6:03:11 PM by JES ÇAdded optional parameter, adrCtNewParts. If not nil, the number of updated parts is assigned to adrCtNewParts^. Ç08/20/00; 11:49:35 AM by PBS ÇIf the server returns a last update time, use that instead of clock.now (). This fixes problems with people missing updates due to having clocks out-of-synch with the server. This way, the server's time is always used. Ç06/17/00; 11:16:23 PM by PBS ÇUse new root updates timeout pref. Ç11/16/99; 1:43:53 AM AM by AR ÇMake sure backup folder exists before backing up GDBs. ÇAdded flQuietMode parameter, defaulting to false. If it's true, we suppress all server-unfriendly interaction like putting up dialogs or opening the outline of new parts, regardless of the settings in user.rootUpdates. Ç10/7/99; 6:43:29 PM by DW ÇNew pref, user.rootupdates.prefs.flShowUpdatesToUser, defaults true, initialized in rootUpdates.init. ÇNew pref, user.rootupdates.prefs.adrOutlineForUser, defaults to @user.rootUpdates.updateOutline. Çif flShowUpdatesToUser is true, we create the outline if it doesn't exist and add a top-level headline with the date and time and the name of the database being updated. Each subordinate entry is the address of an object that's been updated. Underneath the address is the explanation of the change, if available. Çbundle //trial, 6/13/05; 12:53:52 PM by TAC - disabled Çif defined (userland.trialVersionCheck) Çif userland.trialVersionCheck () ÇscriptError ("Can't update the database because the trial period has expired.") rootUpdates.init (); local (adrroot = table.getrootaddress (adrInRoot)); local (alist = string.parseaddress (adrroot)); local (f = window.getFile (alist [1])); local (fname = file.filefrompath (f)); if not string.lower (fname) endswith ".root" { scripterror ("Can't update the file because its name doesn't end with .root.")}; local (channelname = string.mid (fname, 1, sizeof (fname) - 5)); local (adrtable = @user.rootUpdates.servers.[channelname]); if not defined (adrtable^) { new (tabletype, adrtable); adrtable^.server = "rootUpdates.frontierOpenSource.editHere.com"; adrtable^.port = 8081; adrtable^.method = "mainResponder.subscriptions.update"; adrtable^.dbname = fname; adrtable^.lastupdate = "Sun, 01 Jan 2006 08:00:00 GMT"; //indicate that it's never been updated adrtable^.autobackup = true; //if true the backup will be of docServer.root, not Frontier.root adrtable^.dialogs = true; //set this false if you're updating automatically thru the scheduler adrtable^.openLog = true; //show the log file of changes adrtable^.URL = ""}; Çelse Çif string.lower (adrtable^.server) == "madrid.userland.com" Çadrtable^.server = "updates.userland.com" Çbundle //the responder name on the server changed Çif adrtable^.method == "mainResponder.subscriptions.update" Çadrtable^.method = "nirvanaServer.subscriptions.update" on getUpdate (serverName, adrInRoot = nil) { //an enhanced version of rootupdates.getUpdate Ç10/18/98; 11:33:30 AM by DW ÇMade it guest database-aware. ÇIf adrInRoot is specified, it's assumed to point into the guest db that's getting updated ÇAdded a field to the prefs record, dbname, which names the guest database that's being shared ÇIt's an index into user.mainresponder.databases on the server. ÇThe handler for this is at mainresponder.rpchandlers.subscriptions.update. local (frontierVersion = Frontier.version ()); local (platform = string.mid (sys.os (), 1, 3)); local (ctnewparts = 0); local (flDialogs = true); local (flLogOutlineOpened = false, flNewLogOutline = false); local (adrPrefs = @user.rootUpdates.servers.[serverName]); local (flguestdb = false, addressprefixstring); //10/18/98 DW bundle { //gather info about guest database if adrInRoot != nil and string.lower (channelname) != "frontier" { addressprefixstring = string (table.getRootAddress (adrInRoot)); flguestdb = true}}; if defined (adrPrefs^.dialogs) and not adrPrefs^.dialogs { flDialogs = false}; if flQuietMode { //AR 11/15/1999 flDialogs = false}; Çif not defined (user.prefs.serialNumber) // 6/13/05; 12:53:52 PM by TAC - disabled Çuser.prefs.serialNumber = "" try { //try to get the root update from the server if flDialogs { local (prompt = "Connect with " + adrPrefs^.server + " to get latest update"); if flguestdb { prompt = prompt + " of " + adrprefs^.dbname}; prompt = prompt + "?"; if not dialog.confirm (prompt) { return (false)}}; window.about (); local (sn = 0); Çif adrPrefs == @user.rootUpdates.servers.Frontier ÇOnly send Frontier serial number when getting Frontier.root udpate. ÇThu, Mar 18, 1999 at 3:21:10 PM by PBS Çsn = user.prefs.serialNumber local (rpcPath = user.betty.prefs.rpcClientDefaultPath); Çbundle // 6/13/05; 12:53:52 PM by TAC - disabled, no serial number check needed for open source release Çcase true //PBS 08/06/01: send serial number for Frontier, Manila, and mainResponder ÇadrPrefs == @user.rootUpdates.servers.Radio ÇadrPrefs == @user.rootUpdates.servers.radioCommunityServer ÇadrPrefs == @user.rootUpdates.servers.serverMonitor ÇadrPrefs == @user.rootUpdates.servers.Prefs ÇadrPrefs == @user.rootUpdates.servers.Frontier ÇadrPrefs == @user.rootUpdates.servers.Manila ÇadrPrefs == @user.rootUpdates.servers.mainResponder Çsn = user.prefs.serialNumber Çif string.lower (adrprefs^.server) endswith ".userland.com" Çtry //add path args to rpcPath Çlocal (args); new (tableType, @args) Çargs.org (xn--args-zoa.org) = user.prefs.organization Çargs.name = user.prefs.name Çargs.email = user.prefs.mailAddress Çargs.sn = user.prefs.serialNumber Çif defined (config.mainResponder.domains) Çargs.domains = sizeOf (config.mainResponder.domains) Çelse Çargs.domains = 0 Çif defined (config.manila.sites) Çargs.sites = sizeOf (config.manila.sites) Çelse Çargs.sites = 0 Çif defined (radioCommunityServerData.users) Çargs.rcsUsers = sizeOf (radioCommunityServerData.users) Çelse Çargs.rcsUsers = 0 ÇrpcPath = rpcPath + "?" + webserver.encodeArgs (@args) Çelse Çif defined (adrPrefs^.serialNum) Çsn = adrPrefs^.serialNum Çelse Çsn = 0 local (paramlist = {adrPrefs^.lastupdate, platform, sn, user.prefs.name, user.prefs.mailAddress, frontierVersion}); bundle { //PBS 01/07/02: send usernum to radioupdates.userland.com Çif tcp.equalNames (adrPrefs^.server, "radioupdates.userland.com") Çparamlist = paramlist + user.radio.prefs.usernum if string.lower (adrPrefs^.server) == "radioupdates.userland.com" { paramlist = paramlist + user.radio.prefs.usernum}}; if flguestdb { paramlist = {adrprefs^.dbname} + {tcp.addressDecode (tcp.myAddress ())} + paramlist}; local (newpartstable); local (i); msg ("Connecting to " + adrPrefs^.server + " to get " + serverName + " update..."); newpartstable = betty.rpc.client (adrPrefs^.server, adrPrefs^.port, adrPrefs^.method, @paramlist, false, rpcPath:rpcPath, ticksToTimeOut:user.rootUpdates.prefs.timeout); Çbundle //original call Çnewpartstable = betty.rpc.client (adrPrefs^.server, adrPrefs^.port, adrPrefs^.method, @paramlist, false, ticksToTimeOut:user.rootUpdates.prefs.timeout) if not defined (newPartsTable.parts) { if newPartsTable beginsWith "There are no new or changed parts available." or newPartsTable beginsWith "Your root is already updated" { msg (""); if flDialogs { dialog.notify (newPartsTable)} else { msg (newPartsTable)}; if adrCtNewParts != nil { //4/16/02; 4:33:24 PM by JES: make the new part count available to the caller, even if there are no new parts adrCtNewParts^ = ctNewParts}; return (true)}}; if adrPrefs^.autobackup { //10/18/98; 11:36:58 AM by DW if flguestdb { backups.init (); //make sure user.backups.folder is set local (alist = string.parseaddress (adrInRoot)); local (source = alist [1]); filemenu.save (source); local (dest); bundle { //set dest to point at the destination file dest = file.filefrompath (source); if string.lower (dest) endswith ".root" { dest = string.delete (dest, sizeof (dest) - 4, 5); //pop off .root dest = dest + "." + user.backups.nextBackup + ".root"} else { dest = dest + "." + user.backups.nextBackup}; dest = user.backups.folder + dest; user.backups.nextBackup++}; file.sureFilePath (dest); //AR 11/15/1999 file.copy (source, dest); filemenu.save (); msg (dest + " is " + string.megabytestring (file.size (dest)))} else { backups.backuproot ()}}; for i = 1 to sizeof (newpartstable.parts) { local (adrnewpart = @newpartstable.parts [i]); local (bytes = binary (base64.decode (adrnewpart^))); local (flpartinstalled = true); setBinaryType (@bytes, tableType); unpack (@bytes, adrnewpart); on installPart (adrpart) { if defined (user.rootUpdates.protected) { //Don't import into these places. local (j); for j = 1 to sizeOf (user.rootUpdates.protected) { local (oneItem = address (user.rootUpdates.protected [j])); if table.tableContains (oneItem, adrpart^.adr) { //Don't install. flpartinstalled = false; return (true)}}}; if defined (adrpart^.platform) { if string.lower (adrpart^.platform) != "both" { // Only install parts for this platform. if string.lower (adrpart^.platform) != string.lower (platform) { return (true)}}}; try { if flguestdb { //we got a relative address, convert it to a real address adrpart^.adr = address (addressprefixstring + "." + adrpart^.adr)}; msg ("Importing " + adrpart^.adr + "."); local (adrcallback, ixcallback, ctcallbacks, flInstallPart = true); bundle { //call beforeInstallPart callbacks ctcallbacks = sizeOf (user.rootUpdates.callbacks.beforeInstallPart); for ixcallback = 1 to ctcallbacks { local (adrcallback = @user.rootUpdates.callbacks.beforeInstallPart[ixcallback] ); try { while typeOf (adrcallback^) == addressType { adrcallback = adrcallback^}; if not adrcallback^ (adrpart^.adr, string (adrpart^.changes) ) { flInstallPart = false; break}}}}; if flInstallPart { adrpart^.adr^ = adrpart^.data}; bundle { //call afterInstallPart callbacks ctcallbacks = sizeOf (user.rootUpdates.callbacks.afterInstallPart); for ixcallback = 1 to ctcallbacks { local (adrcallback = @user.rootUpdates.callbacks.afterInstallPart[ixcallback] ); try { while typeOf (adrcallback^) == addressType { adrcallback = adrcallback^}; adrcallback^ (adrpart^.adr, string (adrpart^.changes) )}}}} else { flpartinstalled = false; if flDialogs { if not dialog.yesNo ("Installation of \"" + adrpart^.adr + "\" failed. Continue installation?") { return (false)}}}; local (logline); bundle { //clean up address so you can 2click on it logline = string (adrpart^.adr); local (ix = string.patternmatch ("].", logline)); if ix != 0 { logline = string.delete (logline, 1, ix + 1)}}; bundle { //log the update on cleanNote (s) { if s != "" { s = string.replaceAll (s, "\r\n", "\r"); s = string.replace (s, ": ", ":\r"); s = string.replaceAll (s, ". ", ".\r"); s = string.replaceAll (s, "-- ", "--\r"); s = "Changed " + s; s = string.replaceAll (s, "\r\r\r\r", "\r\r"); s = string.replaceAll (s, "\r\r\r", "\r\r"); s = string.popTrailing (s, "\r")}; return (s)}; local (changenote = cleanNote (string (adrpart^.changes))); export.addToLog (logline, adrPrefs^.url, changenote); if user.rootupdates.prefs.flShowUpdatesToUser { if not flLogOutlineOpened { if not defined (user.rootupdates.prefs.adrOutlineForUser^) { new (outlinetype, user.rootupdates.prefs.adrOutlineForUser); local (oldtarget = target.set (user.rootupdates.prefs.adrOutlineForUser)); op.setLineText (user.rootupdates.prefs.adrOutlineForUser + " created on " + clock.now ()); target.set (oldtarget); flNewLogOutline = true}; local (oldtarget = target.set (user.rootupdates.prefs.adrOutlineForUser)); op.firstSummit (); op.insert ("Updated " + fname + " on " + clock.now (), up); target.set (oldtarget); flLogOutlineOpened = true}; local (oldtarget = target.set (user.rootupdates.prefs.adrOutlineForUser)); op.insert (logline, right); if sizeof (changenote) > 0 { op.insert (changenote, right); op.go (left, 1); op.collapse ()}; op.go (left, 1); target.set (oldtarget)}}; return (true)}; if not installPart (adrnewpart) { break}; if flpartinstalled { ctnewparts++}}; if defined (newPartsTable.lastUpdateTime) { //PBS 08/20/00: get last update time from server, if supplied adrPrefs^.lastUpdate = newPartsTable.lastUpdateTime} else { //PBS 08/20/00: fallback -- use clock.now () to set last update time adrPrefs^.lastUpdate = date.netStandardString (clock.now ())}; adrPrefs^.serialNum = newPartsTable.serialNum; if flguestdb { msg ("Saving " + adrprefs^.dbname + "..."); fileMenu.saveMyRoot (adrInRoot); msg ("")} else { menu.installMainMenu (); system.menus.buildSuitesSubMenu (); //re-build in case any new suites were imported. msg ("Saving Frontier.root..."); fileMenu.save (); msg ("")}; if flLogOutlineOpened and not flQuietMode { edit (user.rootupdates.prefs.adrOutlineForUser); if flNewLogOutline { window.zoom (user.rootupdates.prefs.adrOutlineForUser)}} else { thread.sleepFor (0); if ctnewparts == 1 { if flDialogs { dialog.alert ("1 new part loaded from \"" + adrPrefs^.server + "\".")} else { msg ("1 new part loaded from \"" + adrPrefs^.server + "\".")}} else { if flDialogs { dialog.alert (ctnewparts + " new parts loaded from \"" + adrPrefs^.server + "\".")} else { msg (ctnewparts + " new parts loaded from \"" + adrPrefs^.server + "\".")}}}} else { //handle errors on alert (message) { if flDialogs { return (dialog.alert (message))}; scriptError (message)}; local (lowerError = string.lower (tryerror)); local (errmsg = "Can't update the root because "); case true { lowerError contains "socket is not connected" { alert (errmsg + "the server is not responding.")}; lowerError contains "can't get the address of"; lowerError contains "poorly formed xml text"; lowerError contains "missing tag" { alert (errmsg + "the server timed out.")}} else { alert (errmsg + "\"" + tryError + ".\"")}; return (false)}; if adrCtNewParts != nil { //01/21/01 JES: make the new part count available to the caller adrCtNewParts^ = ctNewParts}; return (true)}; getUpdate (channelname, adrroot)}; Çbundle // testing Çupdate (@mainResponder) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:38:45
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/menus/modals In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1944 Modified Files: scpt Log Message: script clean up script uses user prefs font settings Index: scpt =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/menus/modals/scpt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** scpt 17 Nov 2005 17:04:46 -0000 1.3 --- scpt 25 Dec 2005 01:38:37 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:mbar:system.menus.modals.scpt ! AAEFAQAAAdkAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgBkAGQBpAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACEAAAAbQAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAApKd/Rr+hUs8AAAXHAAAAsQC2AS4ByUxBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAU2NyaXB0DQlPdXRsaW5lDQlIVE1MDQktDQlUb2dnbGUgQnJlYWtwb2ludA0JLQ0JQ2xlYW4gVXANCS0NCUJ1bmRsZS1pemUNCURlLUJ1bmRsZQ0JLQ0JUmVtb3ZlIFNvdXJjZSBDb2RlLi4uDYAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApLAAAAAAAGlWZcAAAAAAAAAAAAAAAKAAAAAAAABpMocAAAAAAAAAAAAAAACgAAAAAAAAaTELAAAAAAAAoAAAAAAAAGUInMAAAAAAAAAAAAAAAKAAAAAAAAAUuBgAACAAAAGAAAAFQAAwIAAA8NTHVjaWRhIEdyYW5kZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABngAAKSobfiueWLIAAAAHwAAALEAtgEuAclMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGlmIHNjcmlwdC5nZXRicmVha3BvaW50ICgpDQlzY3JpcHQuY2xlYXJicmVha3BvaW50ICgpDWVsc2UNCXNjcmlwdC5zZXRicmVha3BvaW50ICgpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAAogAAAZkAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAL3M7i+/oWJGAAAAGAAAAScBPwHvAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAENoYW5nZXMNCTExLzE2LzA1OyAxMDoyMjozMyBQTSBieSBUQUMNCQljcmVhdGVkDQ1sb2NhbCAoYWRyID0gdGFyZ2V0LmdldCAoKSkNDW9wLnNldERpc3BsYXkgKGZhbHNlKQ1vcC5mdWxsRXhwYW5kICgpDW9wLmZpcnN0U3VtbWl0ICgpDQ1sb29wDQlpZiBzY3JpcHQuaXNDb21tZW50ICgpDQkJb3AuY29sbGFwc2UgKCkNCQ0JaWYgbm90IChvcC5nbyAoZmxhdGRvd24sIDEpKQ0JCWJyZWFrDQ1vcC5maXJzdFN1bW1pdCAoKQ0NZWRpdE1lbnUuc2V0Rm9udFNpemUgKDE0KQ1lZGl0TWVudS5zZXRGb250ICgiR2VuZXZhIikNDXdpbmRvdy5zZXRQb3NpdGlvbiAoYWRyLCAwLCAwKQ13aW5kb3cuc2V0U2l6ZSAoYWRyLCBpbmZpbml0eSwgaW5maW5pdHkpDXdpbmRvdy56b29tIChhZHIpDQ1vcC5zZXREaXNwbGF5ICh0cnVlKQ2EAAAAAAAAAAAAAAAAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAAAwAAAAmAAACAAAPDUx1Y2lkYSBHcmFuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZ4AACiu2omrnliyAAAACUAAABzABYBQAJKTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABvcC5pbnNlcnQgKCJidW5kbGUiLCB1cCkNb3AuZGVtb3RlICgpDYAAAAAAAIAAAAAAAAACAAAAngAAAfwAEQIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAcABwAABsAAAKK7akWwklTbAAAALAAAAHMAFgFAAkpMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGJ1bmRsZQ0JbG9jYWwgKG9yaWdMaW5lID0gb3AuZ2V0Q3Vyc29yICgpKSDHc2F2ZSBmb3IgbGF0ZXINCWxvY2FsIChmb3VuZEJ1bmRsZSA9IGZhbHNlKSDHaGF2ZW4ndCBmb3VuZCBidW5kbGUgbGluZSB5ZXQNCQ0JbG9vcCDHZmluZCB0aGUgYnVuZGxlIGxpbmUNCQlpZiBzdHJpbmcubWlkIChvcC5nZXRMaW5lVGV4dCAoKSwgMSwgNikgPT0gImJ1bmRsZSINCQkJZm91bmRCdW5kbGUgPSB0cnVlDQkJCWJyZWFrDQkJaWYgbm90IG9wLmdvIChsZWZ0LCAxKSDHd2UndmUgcmVhY2hlZCB0aGUgdG9wIGxldmVsDQkJCWJyZWFrDQkNCWlmIGZvdW5kQnVuZGxlDQkJb3AucHJvbW90ZSAoKQ0JCWVkaXRNZW51LmN1dCAoKQ0JCW9wLnNldEN1cnNvciAob3JpZ0xpbmUpDQllbHNlIMduZXZlciBmb3VuZCBhIGJ1bmRsZQ0JCW9wLnNldEN1cnNvciAob3JpZ0xpbmUpDQkJZGlhbG9nLmFsZXJ0ICgiT3V0bGluZSBjdXJzb3IgaXMgbm90IHBhcnQgb2YgYSBidW5kbGUuIENhbid0IGRlLWJ1bmRsZSBpdC4iKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAoAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAKAAAAAAAAAAAAAIAAAAAACgAAAAAAAAAAAACAAAAAAACAAAAAAAoAAAAAAAAAAAAAgAAAAAAAgAAAAAAKAAAAAAAAAAAAAAACAAAANgAAAUoAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAABsAAAKkI2lKwklUCAAAAJgAAAVkBfwIhAwBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGxvY2FsIChhZHJTY3JpcHQpDXRyeQ0JYWRyU2NyaXB0ID0gYWRkcmVzcyAod2luZG93LmZyb250bW9zdCAoKSkNZWxzZSANCWRpYWxvZy5hbGVydCAoIkNhbid0IHJlbW92ZSBzb3VyY2UgY29kZSBmcm9tIG1lbnUgYmFyIHNjcmlwdHMuIikNCXJldHVybg1pZiBkaWFsb2cuY29uZmlybSAoIlJlbW92ZSBzb3VyY2UgY29kZSBmcm9tIFwiIiArIG5hbWVPZiAoYWRyU2NyaXB0XikgKyAiXCI/IikNCXRhYmxlLmFzc2lnbiAoQHN5c3RlbS5taXNjLmxhc3RDb21waWxlZFNjcmlwdCwgYWRyU2NyaXB0Xikgx2Egc2FmZWd1YXJkDQlzY3JpcHQucmVtb3ZlU291cmNlIChhZHJTY3JpcHQpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAA== \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:mbar:system.menus.modals.scpt ! AAEFAQAAAdkAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgBkAGQBpAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACEAAAAbQAAAgAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAApKd/Rr+hUs8AAAXKAAAAsQC2AS4ByUxBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAU2NyaXB0DQlPdXRsaW5lDQlIVE1MDQktDQlUb2dnbGUgQnJlYWtwb2ludA0JLQ0JQ2xlYW4gVXANCS0NCUJ1bmRsZS1pemUNCURlLUJ1bmRsZQ0JLQ0JUmVtb3ZlIFNvdXJjZSBDb2RlLi4uDYAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApLAAAAAAAGgGq0AAAAAAAAAAAAAAAKAAAAAAAABoBquAAAAAAAAAAAAAAACgAAAAAAAAaAarwAAAAAAAoAAAAAAAAGgGrgAAAAAAAAAAAAAAAKAAAAAAAABoBsgAACAAAAGAAAAFQAAwIAAA8NTHVjaWRhIEdyYW5kZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABngAAKSobfiueWLIAAAAHwAAALEAtgEuAclMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGlmIHNjcmlwdC5nZXRicmVha3BvaW50ICgpDQlzY3JpcHQuY2xlYXJicmVha3BvaW50ICgpDWVsc2UNCXNjcmlwdC5zZXRicmVha3BvaW50ICgpDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAArgAAAjYAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAL3M7i+/0vrZAAAAGQAAAScBPwHvAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAENoYW5nZXMNCTEyLzI0LzA1OyAxOjEzOjQ4IFBNIGJ5IFRBQw0JCXVzZSB1c2VyLnByZWZzLmZvbnRzLnNjcmlwdC4uLiBmb3IgZm9udCBhbmQgc2l6ZSBpbnN0ZWFkIG9mIGhhcmQgY29kZWQgdmFsdWVzDQkxMS8xNi8wNTsgMTA6MjI6MzMgUE0gYnkgVEFDDQkJY3JlYXRlZA0NbG9jYWwgKGFkciA9IHRhcmdldC5nZXQgKCkpDQ1vcC5zZXREaXNwbGF5IChmYWxzZSkNb3AuZnVsbEV4cGFuZCAoKQ1vcC5maXJzdFN1bW1pdCAoKQ0NbG9vcA0JaWYgc2NyaXB0LmlzQ29tbWVudCAoKQ0JCW9wLmNvbGxhcHNlICgpDQkNCWlmIG5vdCAob3AuZ28gKGZsYXRkb3duLCAxKSkNCQlicmVhaw0Nb3AuZmlyc3RTdW1taXQgKCkNDWVkaXRNZW51LnNldEZvbnRTaXplICh1c2VyLnByZWZzLmZvbnRzLnNjcmlwdEZvbnRTaXplKQ1lZGl0TWVudS5zZXRGb250ICh1c2VyLnByZWZzLmZvbnRzLnNjcmlwdEZvbnQpDQ13aW5kb3cuc2V0UG9zaXRpb24gKGFkciwgMCwgMCkNd2luZG93LnNldFNpemUgKGFkciwgaW5maW5pdHksIGluZmluaXR5KQ13aW5kb3cuem9vbSAoYWRyKQ0Nb3Auc2V0RGlzcGxheSAodHJ1ZSkNhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAAAIAAAAMAAAAJgAAAgAADw1MdWNpZGEgR3JhbmRlAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAGeAAAortqJq55YsgAAAAlAAAAcwAWAUACSkxBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAb3AuaW5zZXJ0ICgiYnVuZGxlIiwgdXApDW9wLmRlbW90ZSAoKQ2AAAAAAACAAAAAAAAAAgAAAJ4AAAH8ABECAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAHAAcAAAbAAACiu2pFsJJU2wAAACwAAABzABYBQAJKTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABidW5kbGUNCWxvY2FsIChvcmlnTGluZSA9IG9wLmdldEN1cnNvciAoKSkgx3NhdmUgZm9yIGxhdGVyDQlsb2NhbCAoZm91bmRCdW5kbGUgPSBmYWxzZSkgx2hhdmVuJ3QgZm91bmQgYnVuZGxlIGxpbmUgeWV0DQkNCWxvb3Agx2ZpbmQgdGhlIGJ1bmRsZSBsaW5lDQkJaWYgc3RyaW5nLm1pZCAob3AuZ2V0TGluZVRleHQgKCksIDEsIDYpID09ICJidW5kbGUiDQkJCWZvdW5kQnVuZGxlID0gdHJ1ZQ0JCQlicmVhaw0JCWlmIG5vdCBvcC5nbyAobGVmdCwgMSkgx3dlJ3ZlIHJlYWNoZWQgdGhlIHRvcCBsZXZlbA0JCQlicmVhaw0JDQlpZiBmb3VuZEJ1bmRsZQ0JCW9wLnByb21vdGUgKCkNCQllZGl0TWVudS5jdXQgKCkNCQlvcC5zZXRDdXJzb3IgKG9yaWdMaW5lKQ0JZWxzZSDHbmV2ZXIgZm91bmQgYSBidW5kbGUNCQlvcC5zZXRDdXJzb3IgKG9yaWdMaW5lKQ0JCWRpYWxvZy5hbGVydCAoIk91dGxpbmUgY3Vyc29yIGlzIG5vdCBwYXJ0IG9mIGEgYnVuZGxlLiBDYW4ndCBkZS1idW5kbGUgaXQuIikNgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAKAAAAAAAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAACgAAAAAAAAAAAACAAAAAAAoAAAAAAAAAAAAAgAAAAAAAgAAAAAAKAAAAAAAAAAAAAIAAAAAAAIAAAAAACgAAAAAAAAAAAAAAAgAAADYAAAFKAAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAbAAACpCNpSsJJVAgAAACYAAAFZAX8CIQMATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABsb2NhbCAoYWRyU2NyaXB0KQ10cnkNCWFkclNjcmlwdCA9IGFkZHJlc3MgKHdpbmRvdy5mcm9udG1vc3QgKCkpDWVsc2UgDQlkaWFsb2cuYWxlcnQgKCJDYW4ndCByZW1vdmUgc291cmNlIGNvZGUgZnJvbSBtZW51IGJhciBzY3JpcHRzLiIpDQlyZXR1cm4NaWYgZGlhbG9nLmNvbmZpcm0gKCJSZW1vdmUgc291cmNlIGNvZGUgZnJvbSBcIiIgKyBuYW1lT2YgKGFkclNjcmlwdF4pICsgIlwiPyIpDQl0YWJsZS5hc3NpZ24gKEBzeXN0ZW0ubWlzYy5sYXN0Q29tcGlsZWRTY3JpcHQsIGFkclNjcmlwdF4pIMdhIHNhZmVndWFyZA0Jc2NyaXB0LnJlbW92ZVNvdXJjZSAoYWRyU2NyaXB0KQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAA= \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:37:29
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/rootUpdates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1748 Modified Files: init Log Message: updated Frontier.root root update settings Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/rootUpdates/init,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** init 13 Jun 2005 20:13:46 -0000 1.2 --- init 25 Dec 2005 01:37:19 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.rootUpdates.init ! on init () { ÇChanges Ç1/22/05; 7:48:55 PM by TAC Çmoved some code from userland.completeSetup Ç12/4/04; 6:39:37 PM by TAC Çchanged userland.initialLastUpdateTime to Frontier.data.initialLastUpdateTime for open source release Ç8/28/02; 10:42:47 PM by JES ÇInit user.rootUpdates.callbacks. Ç06/17/00; 4:18:28 PM by PBS ÇAdded new timeout pref specific to root updates. This way you can set the root updates timeout much higher than the default RPC client timeout. ÇLogging of root updates is now false by default. Ç08/20/00; 11:59:32 AM by PBS ÇIf this is Radio UserLand, don't set up prefs for updating Frontier.root. Ç10/7/99; 6:07:04 PM by DW ÇAdded user.rootupdates.prefs and user.rootupdates.prefs.flShowUpdatesToUser ÇInstead of defaulting to madrid.userland.com, the server defaults to updates.userland.com. Çhttp://frontier.userland.com/discuss/msgReader$1766 if not defined (user.rootUpdates) { new (tableType, @user.rootUpdates)}; bundle { //user.rootupdates.prefs if not defined (user.rootupdates.prefs) { new (tableType, @user.rootUpdates.prefs)}; if not defined (user.rootupdates.prefs.flShowUpdatesToUser) { user.rootupdates.prefs.flShowUpdatesToUser = true; user.rootupdates.prefs.flShowUpdatesToUser = false}; //PBS 06/17/00: logging is off by default if not defined (user.rootupdates.prefs.adrOutlineForUser) { user.rootupdates.prefs.adrOutlineForUser = @user.rootUpdates.updateOutline}; if not defined (user.rootUpdates.prefs.timeout) { //PBS 06/17/00: timeout ticks specific to root updates user.rootUpdates.prefs.timeout = ((60 * 60) * 60)}}; //one minute bundle { //user.rootUpdates.callbacks if not defined (user.rootUpdates.callbacks) { new (tableType, @user.rootUpdates.callbacks)}; if not defined (user.rootUpdates.callbacks.beforeInstallPart) { new (tableType, @user.rootUpdates.callbacks.beforeInstallPart)}; if not defined (user.rootUpdates.callbacks.afterInstallPart) { new (tableType, @user.rootUpdates.callbacks.afterInstallPart)}}; bundle { //user.rootUpdates.servers // ? - change to open source Frontier.root update server if not defined (user.rootUpdates.servers) { new (tableType, @user.rootUpdates.servers)}; if not system.environment.isPike { //PBS 08/20/00: set up root updates prefs for Frontier.root only if this is Frontier if not defined (user.rootUpdates.servers.Frontier) { new (tableType, @user.rootUpdates.servers.Frontier)}; if not defined (user.rootUpdates.servers.Frontier.lastupdate) { user.rootUpdates.servers.Frontier.lastupdate = Frontier.data.initialLastUpdateTime}; if typeOf (user.rootUpdates.servers.Frontier.lastUpdate) != stringType { user.rootUpdates.servers.Frontier.lastupdate = Frontier.data.initialLastUpdateTime}; if not defined (user.rootUpdates.servers.Frontier.autobackup) { user.rootUpdates.servers.Frontier.autobackup = true}; if not defined (user.rootUpdates.servers.Frontier.method) { user.rootUpdates.servers.Frontier.method = "rootUpdates.public.getUpdate"}; if not defined (user.rootUpdates.servers.Frontier.server) { // 11/27/04; 1:45:24 PM by TAC - ? needs to be changed for open source release user.rootUpdates.servers.Frontier.server = "updates.userland.com"}; if not defined (user.rootUpdates.servers.Frontier.port) { user.rootUpdates.servers.Frontier.port = 80}; if not defined (user.rootUpdates.servers.Frontier.dialogs) { user.rootUpdates.servers.Frontier.dialogs = true}; if not defined (user.rootUpdates.servers.Frontier.URL) { user.rootUpdates.servers.Frontier.URL = "http://frontier.userland.com/updates/Frontier"}; // 1/22/05; 7:31:03 PM by TAC - copied from firstRootRun, needs to be replaced for open source if date (user.rootUpdates.servers.Frontier.lastUpdate) < date (Frontier.data.initialLastUpdateTime) { // 1/22/05; 7:47:24 PM by TAC - moved from userland.completeSetup user.rootUpdates.servers.Frontier.lastUpdate = Frontier.data.initialLastUpdateTime}}}}; Çbundle //test code Çinit () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.rootUpdates.init ! on init () { ÇChanges Ç12/24/05; 10:48:17 AM by TAC Çupdated Frontier.root root update settings Ç1/22/05; 7:48:55 PM by TAC Çmoved some code from userland.completeSetup Ç12/4/04; 6:39:37 PM by TAC Çchanged userland.initialLastUpdateTime to Frontier.data.initialLastUpdateTime for open source release Ç8/28/02; 10:42:47 PM by JES ÇInit user.rootUpdates.callbacks. Ç06/17/00; 4:18:28 PM by PBS ÇAdded new timeout pref specific to root updates. This way you can set the root updates timeout much higher than the default RPC client timeout. ÇLogging of root updates is now false by default. Ç08/20/00; 11:59:32 AM by PBS ÇIf this is Radio UserLand, don't set up prefs for updating Frontier.root. Ç10/7/99; 6:07:04 PM by DW ÇAdded user.rootupdates.prefs and user.rootupdates.prefs.flShowUpdatesToUser ÇInstead of defaulting to madrid.userland.com, the server defaults to updates.userland.com. Çhttp://frontier.userland.com/discuss/msgReader$1766 if not defined (user.rootUpdates) { new (tableType, @user.rootUpdates)}; bundle { //user.rootupdates.prefs if not defined (user.rootupdates.prefs) { new (tableType, @user.rootUpdates.prefs)}; if not defined (user.rootupdates.prefs.flShowUpdatesToUser) { user.rootupdates.prefs.flShowUpdatesToUser = true; user.rootupdates.prefs.flShowUpdatesToUser = false}; //PBS 06/17/00: logging is off by default if not defined (user.rootupdates.prefs.adrOutlineForUser) { user.rootupdates.prefs.adrOutlineForUser = @user.rootUpdates.updateOutline}; if not defined (user.rootUpdates.prefs.timeout) { //PBS 06/17/00: timeout ticks specific to root updates user.rootUpdates.prefs.timeout = ((60 * 60) * 60)}}; //one minute bundle { //user.rootUpdates.callbacks if not defined (user.rootUpdates.callbacks) { new (tableType, @user.rootUpdates.callbacks)}; if not defined (user.rootUpdates.callbacks.beforeInstallPart) { new (tableType, @user.rootUpdates.callbacks.beforeInstallPart)}; if not defined (user.rootUpdates.callbacks.afterInstallPart) { new (tableType, @user.rootUpdates.callbacks.afterInstallPart)}}; bundle { //user.rootUpdates.servers if not defined (user.rootUpdates.servers) { new (tableType, @user.rootUpdates.servers)}; if not system.environment.isPike { //PBS 08/20/00: set up root updates prefs for Frontier.root only if this is Frontier if not defined (user.rootUpdates.servers.Frontier) { new (tableType, @user.rootUpdates.servers.Frontier)}; if not defined (user.rootUpdates.servers.Frontier.lastupdate) { user.rootUpdates.servers.Frontier.lastupdate = Frontier.data.initialLastUpdateTime}; if typeOf (user.rootUpdates.servers.Frontier.lastUpdate) != stringType { user.rootUpdates.servers.Frontier.lastupdate = Frontier.data.initialLastUpdateTime}; if not defined (user.rootUpdates.servers.Frontier.autobackup) { user.rootUpdates.servers.Frontier.autobackup = true}; if not defined (user.rootUpdates.servers.Frontier.method) { user.rootUpdates.servers.Frontier.method = "mainResponder.subscriptions.update"}; if not defined (user.rootUpdates.servers.Frontier.server) { user.rootUpdates.servers.Frontier.server = "rootUpdates.frontierOpenSource.editHere.com"}; if not defined (user.rootUpdates.servers.Frontier.port) { user.rootUpdates.servers.Frontier.port = 8081}; if not defined (user.rootUpdates.servers.Frontier.dialogs) { user.rootUpdates.servers.Frontier.dialogs = true}; if not defined (user.rootUpdates.servers.Frontier.URL) { user.rootUpdates.servers.Frontier.URL = "http://frontierOpenSource.editHere.com/rootUpdates/Frontier"}; if date (user.rootUpdates.servers.Frontier.lastUpdate) < date (Frontier.data.initialLastUpdateTime) { // 1/22/05; 7:47:24 PM by TAC - moved from userland.completeSetup user.rootUpdates.servers.Frontier.lastUpdate = Frontier.data.initialLastUpdateTime}; if not defined (user.rootUpdates.servers.Frontier.serialNum) { user.rootUpdates.servers.Frontier.serialNum = 0}}}}; Çbundle // testing Çinit () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-25 01:36:25
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1636 Modified Files: completeSetup Log Message: moved commented code for setting up pref.root root updates into prefs.root as startup script Index: completeSetup =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/completeSetup,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** completeSetup 15 Jun 2005 22:49:46 -0000 1.1 --- completeSetup 25 Dec 2005 01:36:15 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.completeSetup ! on completeSetup (serverDomainName="127.0.0.1", defaultSitePassword="", adminPassword="", flSavePortForwardingPassword=true, flEnablePortForwarding=true) { ÇChanges Ç6/15/05; 9:54:49 AM by TAC Çreworked for open source release Ç5/19/04; 4:16:11 PM by JES ÇThe Create-a-Site Manila site must *not* be a news item site. Ç5/18/04; 11:17:51 PM by JES ÇNew optional parameter, flEnablePortForwarding. If false, don't install port forwarding startup callback, don't set password, and don't start forwarding. Ç4/2/04; 2:51:52 PM by JES ÇEnsure that folders for static rendering, gems, static images and downloaded sites all exist. ÇForce recompile of the default domain's site tree after creating all the sub-sites. Ç3/12/04; 4:43:38 PM by JES ÇFixed configuration of site tree and manila prefs for static rendering, gems, static images and downloaded sites. Ç3/12/04; 4:31:37 PM by JES ÇModified port forwarding startup callback, so that it works properly regardless of whether the sysadmin has saved their MacOS X admin password. Ç9/5/02; 11:57:47 PM by JES ÇSet config.manila.backups.notifyList after completing the setup. Initialize static file prefs -- static rendering, static pictures, gems and site downloads. Ç4/11/02; 5:14:28 PM by JES ÇCreated. After personalizing Frontier 8.0.7 via the Setup Frontier Control Panel page, this script is called. Code cribbed from userland.finishInstall. ÇHere, we do the following: Ç1) Add prefs.root to user.databases, and open it. Ç2) Set up root-updates prefs for Manila. Ç3) Set up the default Manila site (the Create-a-Site Manila site). Ç4) Add the Server menu to user.menus, if it's not already there. Ç5) If running on MacOS X, set up port-forwarding. local (pc = file.getPathChar ()); bundle { //set up root updates prefs Çlocal (lastUpdateTime = date.netStandardString (Frontier.shipDate)) local (lastUpdateTime = Frontier.data.initialLastUpdateTime); if date (user.rootUpdates.servers.mainResponder.lastUpdate) < date (lastUpdateTime) { user.rootUpdates.servers.mainResponder.lastUpdate = lastUpdateTime}; Çif date (user.rootUpdates.servers.manila.lastUpdate) < date (lastUpdateTime) // 11/14/04; 5:06:46 PM by TAC - disabled, eventually remove? Çuser.rootUpdates.servers.manila.lastUpdate = lastUpdateTime Çuser.rootUpdates.servers.prefs = user.rootUpdates.servers.manila // 6/15/05; 8:58:24 AM by TAC - disabled, eventually remove? Çuser.rootUpdates.servers.manila.url = "" // 11/14/04; 5:08:28 PM by TAC Çbundle // 6/15/05; 9:14:31 AM by TAC - ? set up root update for prefs.root, I was going to do this here but now I'm thinking that this really should be done in prefs.root as part of an #startup/init script? perhaps each root should handle its own root update setup as part of each startup/init? Çif not (defined (user.rootUpdates.servers.prefs)) // 11/14/04; 5:11:07 PM by TAC Çnew (tableType, @user.rootUpdates.servers.prefs) Çuser.rootUpdates.servers.prefs.dbName = "prefs.root" Çuser.rootUpdates.servers.prefs.url = ""}; bundle { //set up port forwarding if running in MacOS X if system.environment.isCarbon { if not defined (user.inetd.config.http.apparentPort) { user.inetd.config.http.apparentPort = 80}; local (actualPort = user.inetd.config.http.port); local (apparentPort = user.inetd.config.http.apparentPort); if (actualPort < 1024) or (actualPort != apparentPort) { //set up port forwarding if defined (user.prefs.portForwardingAdminPassword) and (adminPassword == "") { adminPassword = string (user.prefs.portForwardingAdminPassword)}; if flEnablePortForwarding { Frontier.portForward (adminPassword:adminPassword, flSaveAdminPassword:flSavePortForwardingPassword); if defined (user.callbacks.startup.enablePortForwarding) { //possibly delete the old version of the port forwarding callback if string.trimWhiteSpace (string (user.callbacks.startup.enablePortForwarding)) == "Frontier.portForward (adminPassword:string (user.prefs.portForwardingAdminPassword))" { delete (@user.callbacks.startup.enablePortForwarding)}}; if not defined (user.callbacks.startup.enablePortForwarding) { //install port forwarding callback local (s = "if defined (user.prefs.portForwardingAdminPassword)\r\tFrontier.portForward (adminPassword:string (user.prefs.portForwardingAdminPassword))\relse\r\tFrontier.portForward ()"); script.newScriptObject (s, @user.callbacks.startup.enablePortForwarding)}}}}}; Çbundle //Create the default Manila website if it doesn't already exist. // 11/14/04; 4:36:42 PM by TAC - disabled, eventually remove? Çon createSite (canonicalSiteName, displaySiteName, tagline, theme, path="/", flHostingSite=false) Çlocal (serverName = string.lower (serverDomainName)) //Some MacOS X installs can't do DNS lookups with uppercase chars Çlocal (port = user.inetd.config.http.port) Çif system.environment.isCarbon Çif defined (user.inetd.config.http.apparentPort) Çport = user.inetd.config.http.apparentPort Çif port != 80 ÇserverName = serverName + ":" + port Çif flHostingSite Çconfig.manila.prefs.baseUrl = "http://" + serverName + "/" Çif defaultSitePassword == "" //try to get the password from the Admin user's membership table Çlocal (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)) Çif defined (adrMember^) ÇdefaultSitePassword = adrMember^.password Çif defaultSitePassword == "" //couldn't get password from the admin membership group -- that's a fatal error ÇscriptError ("Could not create the default Manila site because no password was specified.") Çlocal (flDefaultSiteIsInstalled = false, adrsite) Çtry Çadrsite = manilaSuite.rpcUtils.getSiteAddress (canonicalSiteName) ÇflDefaultSiteIsInstalled = true Çif flDefaultSiteIsInstalled //set its URL to the one the server is set to Çlocal (oldUrl = manilaSuite.getSiteUrl (adrsite)) Çlocal (newUrl = config.manila.prefs.baseUrl) //it's a top-level site Çif string.lower (oldUrl) != string.lower (newUrl) ÇmanilaSuite.admin.changeSiteUrl (oldUrl, newUrl, adrsite) Çelse //create the default site Çif not defined ([canonicalSiteName]) //only create the default site if it doesn't already exist -- it may have been purposely uninstalled Çuserland.createDefaultSite (canonicalSiteName, defaultSitePassword, serverName, displaySiteName, tagline, theme, path, flHostingSite) Ç ÇcreateSite ("myManilaServerManilaWebsite", "My Manila Server", "View stats, and find and create sites, with a click of the mouse.", "myManilaServer") Ç ÇcreateSite ("homeManilaWebsite", "Home", "", "firstSite") ÇcreateSite ("createASiteManilaWebsite", "Create a Manila Site", "Create a new Manila site whenever you want.", "ISP2", "/newSite/", true) ÇcreateASiteManilaWebsite.["#newsSite"].flNewsItemSite = false Çbundle //install the RCS sites // 6/15/05; 8:47:59 AM by TAC - disabled, IIRC RCS currently requires Manila or Radio to function, it could probably be modified to work with a mR discussion group ÇmainResponder.siteTree.addSiteToTree ("default", "/rcsPublic/", @radioCommunityServerSuite.websites.public, true, true) ÇmainResponder.siteTree.addSiteToTree ("default", "/rcsAdmin/", @radioCommunityServerSuite.websites.admin, true, true) Çdelete (@config.mainResponder.domains.default.siteTree.directory.structure) ÇmainResponder.siteTree.compileIfDirty (@config.mainResponder.domains.default) Frontier.addServerMenu (); //Add the Server menu to user.menus, if it's not already there. Çbundle //miscellaneous cleanup // 6/15/05; 8:51:58 AM by TAC - disabled, eventually remove? Çif config.manila.backups.notifyList == "" //default email address for backup notifications Çconfig.manila.backups.notifyList = user.prefs.mailAddress Ç Çlocal (baseurl) Çbundle //build baseurl Çlocal (serverName = string.lower (serverDomainName)) Çlocal (port = user.inetd.config.http.port) Çif system.environment.isCarbon Çif defined (user.inetd.config.http.apparentPort) Çport = user.inetd.config.http.apparentPort Çif port != 80 ÇserverName = serverName + ":" + port Çbaseurl = "http://" + serverName + "/" Çlocal (wwwfolder = Frontier.getSubFolder ("www")) Çon sureFolder (adrpref, foldername) Çadrpref^ = wwwfolder + foldername + pc Çfile.sureFilePath (adrpref^ + "x") Çreturn (true) Çif config.manila.prefs.staticRenderingFolder == "" ÇsureFolder (@config.manila.prefs.staticRenderingFolder, "manila") Çconfig.manila.prefs.staticRenderingUrl = baseurl + "manila/" ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/", config.manila.prefs.staticRenderingFolder, true, true) Çif config.manila.prefs.staticFilesFolder == "" ÇsureFolder (@config.manila.prefs.staticFilesFolder, "manila" + pc + "staticFiles") Çconfig.manila.prefs.staticFilesUrl = baseurl + "manila/static/" ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/static/", config.manila.prefs.staticFilesFolder, true, true) Çif config.manila.prefs.gemsFolder == "" ÇsureFolder (@config.manila.prefs.gemsFolder, "manila" + pc + "gems") Çconfig.manila.prefs.gemsUrl = baseurl + "manila/gems/" ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/gems/", config.manila.prefs.gemsFolder, true, true) Çif config.manila.prefs.siteDownloadFolder == "" ÇsureFolder (@config.manila.prefs.siteDownloadFolder, "manila" + pc + "downloadedSites") Çconfig.manila.prefs.siteDownloadUrl = baseurl + "manila/downloadedSites/" Çconfig.manila.prefs.flFrontierServesDownloadedSites = true ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/downloadedSites/", config.manila.prefs.siteDownloadFolder, true, true) Çbundle //ensure that all folders exist Çfile.sureFilePath (config.manila.prefs.staticRenderingFolder + "X") Çfile.sureFilePath (config.manila.prefs.staticFilesFolder + "X") Çfile.sureFilePath (config.manila.prefs.gemsFolder + "X") Çfile.sureFilePath (config.manila.prefs.siteDownloadFolder + "X") Çbundle //force re-compile of site tree Çtry {delete (@config.mainResponder.domains.default.siteTree.directory.structure)} bundle { //save all open databases local (rootPath = window.getFile (@root)); on visitproc (f) { if f != rootPath { fileMenu.save (f)} else { fileMenu.saveMyRoot (@root)}; return (true)}; table.visitOpenDatabases (@visitproc)}; return (true)}; Çbundle //testing Çbundle //delete initial sites Çtry {delete (@config.manila.sites.home)} Çtry {delete (@config.manila.sites.createASite)} Çtry {delete (@homeManilaWebsite)} Çtry {delete (@homeManilaWebsiteMembers)} Çtry {delete (@homeManilaWebsiteDiscuss)} Çtry {delete (@createASiteManilaWebsite)} Çtry {delete (@createASiteManilaWebsiteMembers)} Çtry {delete (@createASiteManilaWebsiteDiscuss)} ÇcompleteSetup () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.completeSetup ! on completeSetup (serverDomainName="127.0.0.1", defaultSitePassword="", adminPassword="", flSavePortForwardingPassword=true, flEnablePortForwarding=true) { ÇChanges Ç12/24/05; 12:40:40 PM by TAC Çmoved commented code for setting up pref.root root updates into prefs.root as startup script Ç6/15/05; 9:54:49 AM by TAC Çreworked for open source release Ç5/19/04; 4:16:11 PM by JES ÇThe Create-a-Site Manila site must *not* be a news item site. Ç5/18/04; 11:17:51 PM by JES ÇNew optional parameter, flEnablePortForwarding. If false, don't install port forwarding startup callback, don't set password, and don't start forwarding. Ç4/2/04; 2:51:52 PM by JES ÇEnsure that folders for static rendering, gems, static images and downloaded sites all exist. ÇForce recompile of the default domain's site tree after creating all the sub-sites. Ç3/12/04; 4:43:38 PM by JES ÇFixed configuration of site tree and manila prefs for static rendering, gems, static images and downloaded sites. Ç3/12/04; 4:31:37 PM by JES ÇModified port forwarding startup callback, so that it works properly regardless of whether the sysadmin has saved their MacOS X admin password. Ç9/5/02; 11:57:47 PM by JES ÇSet config.manila.backups.notifyList after completing the setup. Initialize static file prefs -- static rendering, static pictures, gems and site downloads. Ç4/11/02; 5:14:28 PM by JES ÇCreated. After personalizing Frontier 8.0.7 via the Setup Frontier Control Panel page, this script is called. Code cribbed from userland.finishInstall. ÇHere, we do the following: Ç1) Add prefs.root to user.databases, and open it. Ç2) Set up root-updates prefs for Manila. Ç3) Set up the default Manila site (the Create-a-Site Manila site). Ç4) Add the Server menu to user.menus, if it's not already there. Ç5) If running on MacOS X, set up port-forwarding. local (pc = file.getPathChar ()); bundle { //set up root updates prefs Çlocal (lastUpdateTime = date.netStandardString (Frontier.shipDate)) local (lastUpdateTime = Frontier.data.initialLastUpdateTime); if date (user.rootUpdates.servers.mainResponder.lastUpdate) < date (lastUpdateTime) { user.rootUpdates.servers.mainResponder.lastUpdate = lastUpdateTime}; Çif date (user.rootUpdates.servers.manila.lastUpdate) < date (lastUpdateTime) // 11/14/04; 5:06:46 PM by TAC - disabled, eventually remove? Çuser.rootUpdates.servers.manila.lastUpdate = lastUpdateTime };Çuser.rootUpdates.servers.manila.url = "" // 11/14/04; 5:08:28 PM by TAC bundle { //set up port forwarding if running in MacOS X if system.environment.isCarbon { if not defined (user.inetd.config.http.apparentPort) { user.inetd.config.http.apparentPort = 80}; local (actualPort = user.inetd.config.http.port); local (apparentPort = user.inetd.config.http.apparentPort); if (actualPort < 1024) or (actualPort != apparentPort) { //set up port forwarding if defined (user.prefs.portForwardingAdminPassword) and (adminPassword == "") { adminPassword = string (user.prefs.portForwardingAdminPassword)}; if flEnablePortForwarding { Frontier.portForward (adminPassword:adminPassword, flSaveAdminPassword:flSavePortForwardingPassword); if defined (user.callbacks.startup.enablePortForwarding) { //possibly delete the old version of the port forwarding callback if string.trimWhiteSpace (string (user.callbacks.startup.enablePortForwarding)) == "Frontier.portForward (adminPassword:string (user.prefs.portForwardingAdminPassword))" { delete (@user.callbacks.startup.enablePortForwarding)}}; if not defined (user.callbacks.startup.enablePortForwarding) { //install port forwarding callback local (s = "if defined (user.prefs.portForwardingAdminPassword)\r\tFrontier.portForward (adminPassword:string (user.prefs.portForwardingAdminPassword))\relse\r\tFrontier.portForward ()"); script.newScriptObject (s, @user.callbacks.startup.enablePortForwarding)}}}}}; Çbundle //Create the default Manila website if it doesn't already exist. // 11/14/04; 4:36:42 PM by TAC - disabled, eventually remove? Çon createSite (canonicalSiteName, displaySiteName, tagline, theme, path="/", flHostingSite=false) Çlocal (serverName = string.lower (serverDomainName)) //Some MacOS X installs can't do DNS lookups with uppercase chars Çlocal (port = user.inetd.config.http.port) Çif system.environment.isCarbon Çif defined (user.inetd.config.http.apparentPort) Çport = user.inetd.config.http.apparentPort Çif port != 80 ÇserverName = serverName + ":" + port Çif flHostingSite Çconfig.manila.prefs.baseUrl = "http://" + serverName + "/" Çif defaultSitePassword == "" //try to get the password from the Admin user's membership table Çlocal (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)) Çif defined (adrMember^) ÇdefaultSitePassword = adrMember^.password Çif defaultSitePassword == "" //couldn't get password from the admin membership group -- that's a fatal error ÇscriptError ("Could not create the default Manila site because no password was specified.") Çlocal (flDefaultSiteIsInstalled = false, adrsite) Çtry Çadrsite = manilaSuite.rpcUtils.getSiteAddress (canonicalSiteName) ÇflDefaultSiteIsInstalled = true Çif flDefaultSiteIsInstalled //set its URL to the one the server is set to Çlocal (oldUrl = manilaSuite.getSiteUrl (adrsite)) Çlocal (newUrl = config.manila.prefs.baseUrl) //it's a top-level site Çif string.lower (oldUrl) != string.lower (newUrl) ÇmanilaSuite.admin.changeSiteUrl (oldUrl, newUrl, adrsite) Çelse //create the default site Çif not defined ([canonicalSiteName]) //only create the default site if it doesn't already exist -- it may have been purposely uninstalled Çuserland.createDefaultSite (canonicalSiteName, defaultSitePassword, serverName, displaySiteName, tagline, theme, path, flHostingSite) Ç ÇcreateSite ("myManilaServerManilaWebsite", "My Manila Server", "View stats, and find and create sites, with a click of the mouse.", "myManilaServer") Ç ÇcreateSite ("homeManilaWebsite", "Home", "", "firstSite") ÇcreateSite ("createASiteManilaWebsite", "Create a Manila Site", "Create a new Manila site whenever you want.", "ISP2", "/newSite/", true) ÇcreateASiteManilaWebsite.["#newsSite"].flNewsItemSite = false Çbundle //install the RCS sites // 6/15/05; 8:47:59 AM by TAC - disabled, IIRC RCS currently requires Manila or Radio to function, it could probably be modified to work with a mR discussion group ÇmainResponder.siteTree.addSiteToTree ("default", "/rcsPublic/", @radioCommunityServerSuite.websites.public, true, true) ÇmainResponder.siteTree.addSiteToTree ("default", "/rcsAdmin/", @radioCommunityServerSuite.websites.admin, true, true) Çdelete (@config.mainResponder.domains.default.siteTree.directory.structure) ÇmainResponder.siteTree.compileIfDirty (@config.mainResponder.domains.default) Frontier.addServerMenu (); //Add the Server menu to user.menus, if it's not already there. Çbundle //miscellaneous cleanup // 6/15/05; 8:51:58 AM by TAC - disabled, eventually remove? Çif config.manila.backups.notifyList == "" //default email address for backup notifications Çconfig.manila.backups.notifyList = user.prefs.mailAddress Ç Çlocal (baseurl) Çbundle //build baseurl Çlocal (serverName = string.lower (serverDomainName)) Çlocal (port = user.inetd.config.http.port) Çif system.environment.isCarbon Çif defined (user.inetd.config.http.apparentPort) Çport = user.inetd.config.http.apparentPort Çif port != 80 ÇserverName = serverName + ":" + port Çbaseurl = "http://" + serverName + "/" Çlocal (wwwfolder = Frontier.getSubFolder ("www")) Çon sureFolder (adrpref, foldername) Çadrpref^ = wwwfolder + foldername + pc Çfile.sureFilePath (adrpref^ + "x") Çreturn (true) Çif config.manila.prefs.staticRenderingFolder == "" ÇsureFolder (@config.manila.prefs.staticRenderingFolder, "manila") Çconfig.manila.prefs.staticRenderingUrl = baseurl + "manila/" ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/", config.manila.prefs.staticRenderingFolder, true, true) Çif config.manila.prefs.staticFilesFolder == "" ÇsureFolder (@config.manila.prefs.staticFilesFolder, "manila" + pc + "staticFiles") Çconfig.manila.prefs.staticFilesUrl = baseurl + "manila/static/" ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/static/", config.manila.prefs.staticFilesFolder, true, true) Çif config.manila.prefs.gemsFolder == "" ÇsureFolder (@config.manila.prefs.gemsFolder, "manila" + pc + "gems") Çconfig.manila.prefs.gemsUrl = baseurl + "manila/gems/" ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/gems/", config.manila.prefs.gemsFolder, true, true) Çif config.manila.prefs.siteDownloadFolder == "" ÇsureFolder (@config.manila.prefs.siteDownloadFolder, "manila" + pc + "downloadedSites") Çconfig.manila.prefs.siteDownloadUrl = baseurl + "manila/downloadedSites/" Çconfig.manila.prefs.flFrontierServesDownloadedSites = true ÇmainResponder.siteTree.addSiteToTree ("default", "/manila/downloadedSites/", config.manila.prefs.siteDownloadFolder, true, true) Çbundle //ensure that all folders exist Çfile.sureFilePath (config.manila.prefs.staticRenderingFolder + "X") Çfile.sureFilePath (config.manila.prefs.staticFilesFolder + "X") Çfile.sureFilePath (config.manila.prefs.gemsFolder + "X") Çfile.sureFilePath (config.manila.prefs.siteDownloadFolder + "X") Çbundle //force re-compile of site tree Çtry {delete (@config.mainResponder.domains.default.siteTree.directory.structure)} bundle { //save all open databases local (rootPath = window.getFile (@root)); on visitproc (f) { if f != rootPath { fileMenu.save (f)} else { fileMenu.saveMyRoot (@root)}; return (true)}; table.visitOpenDatabases (@visitproc)}; return (true)}; Çbundle //testing Çbundle //delete initial sites Çtry {delete (@config.manila.sites.home)} Çtry {delete (@config.manila.sites.createASite)} Çtry {delete (@homeManilaWebsite)} Çtry {delete (@homeManilaWebsiteMembers)} Çtry {delete (@homeManilaWebsiteDiscuss)} Çtry {delete (@createASiteManilaWebsite)} Çtry {delete (@createASiteManilaWebsiteMembers)} Çtry {delete (@createASiteManilaWebsiteDiscuss)} ÇcompleteSetup () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-12-24 19:38:02
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/rootUpdates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18817 Removed Files: getUpdate Log Message: obsolete, replaced by update script a long time ago --- getUpdate DELETED --- |
|
From: creedon <icr...@us...> - 2005-12-24 05:00:04
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22588 Removed Files: install Log Message: no longer needed --- install DELETED --- |