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.