Tuesday, February 01, 2011 at 4:24 PM.
myServerFarmSuite.init
<<Changes
<<2/1/11; 4:12:57 PM by DW
<<Init flags table.
<<12/14/10; 6:16:17 PM by DW
<<Init FTP prefs, for fresca only.
<<11/29/10; 5:29:21 PM by DW
<<Init stats.ctConflictedCopyDeletions.
<<11/29/10; 3:19:31 PM by DW
<<New flag for Apache serving.
<<11/26/10; 2:12:54 PM by DW
<<Lots of little changes to make Apache-based serving a breeze on fresca.scripting.com.
<<Change the initialization of adrdata^.prefs.myServerFarmFolder to that it points to a sub-folder of "myServerFarm/servers"
<<If adrdata^.prefs.myName is not defined, init it to "".
<<Make sure user.tools.prefs.flUseScheduler2 is defined and is true.
<<11/6/10; 4:33:17 PM by DW
<<Init adrdata^.stats.ctRootUpdates.
<<11/5/10; 4:44:02 PM by DW
<<Init adrdata^.prefs.myServerFarmFolder.
<<10/9/10; 12:22:02 AM by DW
<<Init adrdata^.prefs.apacheFolder. This is a little tricky. In myServerFarmSuite.dropboxToApache, this is the path by which Apache gets to the sub-folder of Dropbox folder called Apache. It's achieved through an alias, so the path isn't the "native" path. It has to be this way to circumvent security constraints in Apache.
<<9/21/10; 8:59:21 AM by DW
<<Created.
local (adrdata = @config.myServerFarm);
if not defined (adrdata^) {
new (tabletype, adrdata)};
bundle { //prefs
if not defined (adrdata^.prefs) {
new (tabletype, @adrdata^.prefs)};
if not defined (adrdata^.prefs.dropboxFolder) {
if defined (user.prefs.dropboxfolder) {
adrdata^.prefs.dropboxFolder = user.prefs.dropboxfolder}
else {
adrdata^.prefs.dropboxFolder = "C:\\My Dropbox\\"}};
if not defined (adrdata^.prefs.myName) { //11/26/10 by DW
adrdata^.prefs.myName = ""};
bundle { //init adrdata^.prefs.myServerFarmFolder
if not defined (adrdata^.prefs.myServerFarmFolder) {
adrdata^.prefs.myServerFarmFolder = ""};
if adrdata^.prefs.myServerFarmFolder == "" {
if adrdata^.prefs.myName != "" {
local (pc = file.getpathchar ());
adrdata^.prefs.myServerFarmFolder = adrdata^.prefs.dropboxFolder + "myServerFarm" + pc + "servers" + pc + adrdata^.prefs.myName + pc}}};
if not defined (adrdata^.prefs.myName) {
adrdata^.prefs.myName = ""};
bundle { //apache
if not defined (adrdata^.prefs.apache) {
new (tabletype, @adrdata^.prefs.apache)};
if not defined (adrdata^.prefs.apache.enabled) {
adrdata^.prefs.apache.enabled = false};
if not defined (adrdata^.prefs.apache.flRpcWriteEnabled) { //11/29/10 by DW
adrdata^.prefs.apache.flRpcWriteEnabled = false};
if not defined (adrdata^.prefs.apache.folder) { //the folder that Apache is serving from
adrdata^.prefs.apache.folder = ""};
if not defined (adrdata^.prefs.apache.configfile) { //httpd-vhosts.con
adrdata^.prefs.apache.configfile = "C:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf\\extra\\httpd-vhosts.conf"}};
bundle { //ftp -- only needed on fresca, 12/14/10 by DW
if not defined (adrdata^.prefs.ftp) {
new (tabletype, @adrdata^.prefs.ftp)};
if not defined (adrdata^.prefs.ftp.enabled) {
adrdata^.prefs.ftp.enabled = false};
if not defined (adrdata^.prefs.ftp.server) {
adrdata^.prefs.ftp.server = "127.0.0.1"};
if not defined (adrdata^.prefs.ftp.username) {
adrdata^.prefs.ftp.username = ""};
if not defined (adrdata^.prefs.ftp.password) {
adrdata^.prefs.ftp.password = ""}}};
bundle { //stats
if not defined (adrdata^.stats) {
new (tabletype, @adrdata^.stats)};
if not defined (adrdata^.stats.ctEveryMinutes) {
adrdata^.stats.ctEveryMinutes = 0};
if not defined (adrdata^.stats.flLogDirty) {
adrdata^.stats.flLogDirty = false};
if not defined (adrdata^.stats.ctLogCallbacks) {
adrdata^.stats.ctLogCallbacks = 0};
if not defined (adrdata^.stats.ctLogBuilds) {
adrdata^.stats.ctLogBuilds = 0};
if not defined (adrdata^.stats.ctRootUpdates) { //11/6/10 by DW
adrdata^.stats.ctRootUpdates = 0};
if not defined (adrdata^.stats.ctConflictedCopyDeletions) { //11/29/10 by DW
adrdata^.stats.ctConflictedCopyDeletions = 0}};
bundle { //misc
if not defined (config.log.callbacks.afterAdd.myServerFarm) {
config.log.callbacks.afterAdd.myServerFarm = @myServerFarmSuite.logCallback};
if not defined (user.prefs.fldevmachine) {
user.prefs.fldevmachine = false};
bundle { //user.tools.prefs.flUseScheduler2, 11/26/10 by DW
if not defined (user.tools.prefs.flUseScheduler2) {
user.tools.prefs.flUseScheduler2 = true}
else {
if not user.tools.prefs.flUseScheduler2 {
user.tools.prefs.flUseScheduler2 = true}}};
if not defined (adrdata^.flags) { //2/1/11 by DW
new (tabletype, @adrdata^.flags)}};
bundle { //old stuff to delete
if defined (adrdata^.prefs.apacheFolder) { //10/9/10 by DW
delete (@adrdata^.prefs.apacheFolder)}};
bundle { //temp table
if not defined (system.temp.myServerFarm) {
new (tabletype, @system.temp.myServerFarm)};
if not defined (system.temp.myServerFarm.whenLaunched) {
system.temp.myServerFarm.whenLaunched = clock.now ()}};
return (adrdata)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.