#!/usr/bin/seed
//<script type="text/javascript">
/**
- * Simple packer example
- *
+ * packer command line
+ *
+ * -o Output
+ * -O Output debug file here.
+ * -t Translate json file.
+ * -w Cache / working dir.
+ * -f File to read with a list of source paths / or class names.
+ * -C no cleanup (use with -w if you need are using a cache directory.)
+ * -p prefix for translation md5 generator (directory that files are in, and is removed
+ * from path when generating an md5 for the translated name.
+ * -w keepWhite - keesp the white space in the output files.
+ * -a autoBuild - puts target in INPUTDIR/compiled/Core-TIMESTAMP.js and enabled translastion
+ *
+ * -m module name used with autoBuild to force a module name.
* compresses files listed as arguments and outputs result
*/
-
-TokenReader = imports['JSDOC/TokenReader.js'].TokenReader;
-ScopeParser = imports['JSDOC/ScopeParser.js'].ScopeParser;
-TokenStream = imports['JSDOC/TokenStream.js'].TokenStream;
-CompressWhite = imports['JSDOC/CompressWhite.js'].CompressWhite;
-File = imports.File.File;
-
-function pack(str)
-{
-
- var tr = new TokenReader();
- var toks = tr.tokenize(str,false); // dont merge xxx + . + yyyy etc.
- var sp = new ScopeParser(new TokenStream(toks));
- sp.buildSymbolTree();
- sp.mungeSymboltree();
- print(sp.warnings.join("\n"));
- var out = CompressWhite(sp.ts);
- return out;
-
-}
+File = imports.File.File;
+Packer = imports.JSDOC.Packer.Packer;
+
+
+
var args = Array.prototype.slice.call(Seed.argv);
args.shift(); //seed
args.shift(); // pack.js
-var files = [];
-var outfn = '';
+var cfg = {
+ files : [],
+ target : false,
+ srcfiles : [],
+ autoBuild : false,
+ module : false
+}
+
+
for(var i =0; i < args.length;i++) {
if (args[i] == '-o') {
- outfn = args[i+1];
+ 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;
}
- files.push(args[i]);
+ 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.srcfiles.push(args[i+1]);
+ i++;
+ continue;
+ }
+ if (args[i] == '-m') {
+ cfg.module = args[i+1];
+ i++;
+ continue;
+ }
+ if (args[i] == '-a') {
+ cfg.autoBuild = true
+ continue;
+ }
+ if (args[i] == '-w') {
+ cfg.keepWhite = true
+ continue;
+ }
+ if (cfg.files.indexOf(args[i]) > -1) {
+ continue; // remove dupes.
+ }
+ cfg.files.push(args[i]);
}
-print(files.join(', '));
-if (!files.length) {
- throw "no files selected";
+var pack;
+try {
+ pack = new Packer(cfg)
+} catch (e) {
+ print("ERROR " + e.toString());
+ throw e;
}
-var out = '';
-files.forEach(function(f) {
- out = pack(File.read(f)) + "\n";
-});
-if (outfn) {
- File.write(outfn, out);
- Seed.quit();
+if (!pack.target) {
+ print(pack.out);
}
-print(out);
-