diff --git a/exec/fileareas.js b/exec/fileareas.js
deleted file mode 100644
index a99abfa152da342ee84a4e844293a00fd39a53b6..0000000000000000000000000000000000000000
--- a/exec/fileareas.js
+++ /dev/null
@@ -1,202 +0,0 @@
-// $Id$
-
-// *****************************************************************
-// Output a file area listing from the BBS's file area configuration
-// *****************************************************************
-
-// Description:
-// The output of this utility module contains information about file
-// "directories", not the files that might be stored in those directories
-// (use the 'filelist' utility for that purpose).
-
-// The default behavior is to output a tab-delimited list of the configuration
-// properties of all directories in all file libraries in SCFG->File Areas.
-
-// To include column headings, use the -hdr command-line option, for example:
-// jsexec fileareas.js -hdr > fileareas.tab
-
-// To restrict the output to specific libraries, specify one or more 
-// '-lib=<library_name>' options on the command-line.
-
-// To output a comma-delimited file (e.g. suitable for import into spreadsheet
-// applications), you may want to quote string values, for example:
-// jsexec fileareas.js -delim=, -quote > fileareas.cvs
-
-// If you specify property names on the command-line, only those configuration
-// properties will be included in the output. You may also follow a property
-// name with =<format> to specify a printf-style format string to use when
-// outputting the property value. You can also *follow* property names with the
-// -upr or -lwr options to convert the property value to uppercase or lowercase
-// respectively.
-
-// As an example, to generate a RAID/FILEBONE.NA/FILEGATE.ZXX format listing:
-// jsexec fileareas.js code="Area %-16s 0 !" -upr description
-
-// For a list of available properties, see this:
-// http://synchro.net/docs/jsobjs.html#file_area.lib_list.dir_list_properties
-
-// When using the -json or command-line option, the output will be formatted
-// as JSON objects and certain options (e.g. -delim, -hdr, -quote) will have no
-// effect on the output. For example, to output a pretty-printed JSON
-// representation of all file areas:
-// jsexec fileareas.js -json=4 > fileareas.json
-
-// NOTE:
-// By default, JSexec will change the current working directory to your
-// Synchronet "ctrl" directory before executing the script, so the redirected
-// output (stdout) of the example commands above would go into files created
-// there. To write output files to a different directory, either specify the
-// *full* path or use the jsexec '-C' command-line option to disable the
-// change-directory function.
-
-// To load this module from another JavaScript module and capture the output,
-// var output = load({}, "fileareas.js", "-quiet");
-
-"use strict";
-
-var options = {
-	hdr: false,
-	delim: '\t',
-	quote: false,
-	quiet: false,
-	sort: false,
-	json: false,
-};
-var defaults = JSON.parse(JSON.stringify(options));
-var props = [];
-var fmt = {}
-var upr = [];
-var lwr = [];
-var lib = [];
-
-for(var i = 0; i < argc; i++) {
-	var value = undefined;
-	var arg = argv[i]; 
-	var eq = arg.indexOf('=');
-	if(eq >= 0) {
-		if(eq < 1)
-			throw("invalid format: " + arg);
-		arg = arg.slice(0, eq);
-		value = argv[i].slice(eq + 1);
-	}
-	if(arg.charAt(0) != '-') {
-		props.push(arg);
-		fmt[arg] = value;
-		continue;
-	}
-	switch(arg) {
-		case '-lib':
-			if(value === undefined)
-				value = argv[++i];
-			lib.push(value.toLowerCase());
-			continue;
-		case '-fmt':	// Alternate syntax to <prop>=<fmt>
-			if(value === undefined)
-				value = argv[++i];
-			if(props.length > 0)
-				fmt[props[props.length - 1]] = value;
-			else
-				throw(argv[i] + " must follow a property specification");
-			continue;
-		case '-upr':
-			if(props.length > 0)
-				upr[props[props.length - 1]] = true;
-			else
-				throw(argv[i] + " must follow a property specification");
-			continue;
-		case '-lwr':
-			if(props.length > 0)
-				lwr[props[props.length - 1]] = true;
-			else
-				throw(argv[i] + " must follow a property specification");
-			continue;
-		default:
-			var arg = arg.slice(1);
-			if(options[arg] === undefined) {
-				alert('unrecognized option: ' + arg);
-				writeln("usage: fileareas.js [[-lib=<name>] [...]] [[-option][=<value>] [...]] [[[prop][=<format> [-upr | -lwr]] [...]]");
-				writeln("options:");
-				writeln(format("\t%-12s <default>", "<option>"));
-				for(var o in defaults)
-					writeln(format("\t%-12s =%s", '-' + o, JSON.stringify(defaults[o])));
-				writeln(format("\t%-12s (use -json=4 for pretty-printing)", ""));
-				exit(0);
-			}
-			if(value !== undefined)
-				options[arg] = value;
-			else {
-				if(typeof options[arg] == 'string') {
-					options[arg] = argv[++i];
-					if(options[arg] === undefined)
-						throw("option value undefined: -" + arg);
-				} else {
-					var value = parseInt(argv[i + 1], 10);
-					if(value >= 0)
-						options[arg] = value, i++;
-					else
-						options[arg] = true;
-				}
-			}
-			continue;
-	}
-}
-
-var output = [];
-for(var i in file_area.dir) {
-	var area = file_area.dir[i];
-	if(lib.length && lib.indexOf(area.lib_name.toLowerCase()) < 0)
-		continue;
-	var obj = {};
-	if(props.length == 0)
-		obj = area;
-	else
-		for(var f in props) {
-			var value = area[props[f]];
-			if(typeof value == 'string') {
-				if(upr[props[f]])
-					value = value.toUpperCase();
-				else if(lwr[props[f]])
-					value = value.toLowerCase();
-			}
-			obj[props[f]] = value;
-		}
-	var line = '';
-	if(options.json !== false)
-		line = JSON.stringify(obj, null, parseInt(options.json, 10));
-	else {
-		if(options.hdr == true && !output.length) {
-			for(var f in obj) {	
-				if(fmt[f])
-					write(format(fmt[f], f));
-				else
-					write(f);
-				write(options.delim);
-			}
-			writeln();
-		}
-		for(var f in obj) {
-			var value = obj[f];
-			if(value === undefined)
-				throw(f + ' is undefined');
-			if(options.quote)
-				value = JSON.stringify(value);
-			if(line.length)
-				line += options.delim;
-			if(fmt[f])
-				line += format(fmt[f], value);
-			else
-				line += value;
-		}
-	}
-	if(js.global.bbs)
-		line = lfexpand(line);
-	output.push(line);
-}
-
-if(options.sort)
-	output.sort();
-if(!options.quiet)
-	for(var i in output)
-		writeln(output[i]);
-
-output;
\ No newline at end of file