|
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 |