* Options management...
*/
XObject = import.XObject.XObject;
-XObject = import.File.File;
+File = import.File.File;
+
Options = {
- "files" : [], // was _
- "directory" : '', // was d.
- "conf" : '', // was c.
+ "baseDir" : '', // base directory -
+ "target" : '', // was d. ?? source directory (needed to put temporary files..)
+ "cacheDirectory" : '',
+ "conf" : '', // was c. - configuration file.. - parsed with JSON.parse
"template": '', // was t.
- "recurse": '', // was r.
+ // "recurse": false, // was r. - not supported..
"ext": '', // was x.
+ "publishExt" : 'html',
"private": '', // was p
"allfunctions": '', // was a
"encoding": '', // was e.
"nocode": '', // was n
"out": '', // was o.
- "suppress": '', // was s
+ "suppress": '', // was s ??? used?
+ "outputSource" : true,
"testmode": '', // was t
"help": '', // was h
"verbose": '', // was v
"disablecache": '', // was C
"define" : [], // was D.
- "handler" : [], // was H
+ "handler" : [], // was H -- not supported..
LOG : {
warn : function(str) {
print("Warn: " +str );
},
init : function()
{
- Log.verbose = this.verbose;
- if (Options.conf) {
-
+ this.LOG.verbose = this.verbose;
+
+
+ if (this.conf) {
+ XObject.extend(this, JSON.parse(File.read(this.conf)));;
}
- }
+ // help ?? -- usage..
+
+ if (!this.src.length) {
+ throw {
+ name: "ArgumentError",
+ message: "No source directories specified"
+ };
+ }
+ if (!this.template) {
+ throw {
+ name: "ArgumentError",
+ message: "No template specified"
+ };
+ }
+
+ if (!this.target) {
+ throw {
+ name: "ArgumentError",
+ message: "No directory specified"
+ };
+ }
+ f (!this.baseDir) {
+ throw {
+ name: "ArgumentError",
+ message: "No baseDir specified"
+ };
+ }
+
+ // should cacheDirectory be a subdirectory of target??
+ // if not set..
+ if (!this.cacheDirectory) {
+ throw {
+ name: "ArgumentError",
+ message: "No cacheDirectory specified"
+ };
+ }
+
+ },
+ /**
+ * this might be nice as a standard bit of code..
+ */
+
+ parseArgv : function(){
+
+ var args = Array.prototype.slice.call(Seed.argv);
+ args.shift(); //seed
+ args.shift(); // pack.js
+ var cfg = {
+ files : [],
+ target : false,
+ }
+
+
+ for(var i =0; i < args.length;i++) {
+ if (args[i] == '-o') {
+ cfg.target = args[i+1];
+ i++;
+ continue;
+ }
+ if (args[i] == '-O') {
+ cfg.debugTarget = args[i+1];
+ i++;
+ continue;
+ }
+ if (args[i] == '-t') {
+ cfg.translateJSON = args[i+1];
+ i++;
+ continue;
+ }
+ if (args[i] == '-w') {
+ cfg.tmpDir = args[i+1];
+ i++;
+ continue;
+ }
+ if (args[i] == '-p') {
+ cfg.prefix = args[i+1];
+ i++;
+ continue;
+ }
+
+ if (args[i] == '-C') {
+ cfg.cleanup = false;
+ continue;
+ }
+ if (args[i] == '-f') {
+ cfg.srcfile = args[i+1];
+ i++;
+ continue;
+ }
+ if (cfg.files.indexOf(args[i]) > -1) {
+ continue; // remove dupes.
+ }
+ cfg.files.push(args[i]);
+ }
+
}
\ No newline at end of file