mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-23 00:46:16 -04:00
first-commit
This commit is contained in:
commit
325c322a27
207 changed files with 35989 additions and 0 deletions
348
doc/jsdoc-toolkit/app/run.js
Normal file
348
doc/jsdoc-toolkit/app/run.js
Normal file
|
@ -0,0 +1,348 @@
|
|||
/**
|
||||
* @fileOverview
|
||||
* A bootstrap script that creates some basic required objects
|
||||
* for loading other scripts.
|
||||
* @author Michael Mathews, micmath@gmail.com
|
||||
* @version $Id: run.js 756 2009-01-07 21:32:58Z micmath $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @namespace Keep track of any messages from the running script.
|
||||
*/
|
||||
LOG = {
|
||||
warn: function(msg, e) {
|
||||
if (JSDOC.opt.q) return;
|
||||
if (e) msg = e.fileName+", line "+e.lineNumber+": "+msg;
|
||||
|
||||
msg = ">> WARNING: "+msg;
|
||||
LOG.warnings.push(msg);
|
||||
if (LOG.out) LOG.out.write(msg+"\n");
|
||||
else print(msg);
|
||||
},
|
||||
|
||||
inform: function(msg) {
|
||||
if (JSDOC.opt.q) return;
|
||||
msg = " > "+msg;
|
||||
if (LOG.out) LOG.out.write(msg+"\n");
|
||||
else if (typeof LOG.verbose != "undefined" && LOG.verbose) print(msg);
|
||||
}
|
||||
};
|
||||
LOG.warnings = [];
|
||||
LOG.verbose = false
|
||||
LOG.out = undefined;
|
||||
|
||||
/**
|
||||
* @class Manipulate a filepath.
|
||||
*/
|
||||
function FilePath(absPath, separator) {
|
||||
this.slash = separator || "/";
|
||||
this.root = this.slash;
|
||||
this.path = [];
|
||||
this.file = "";
|
||||
|
||||
var parts = absPath.split(/[\\\/]/);
|
||||
if (parts) {
|
||||
if (parts.length) this.root = parts.shift() + this.slash;
|
||||
if (parts.length) this.file = parts.pop()
|
||||
if (parts.length) this.path = parts;
|
||||
}
|
||||
|
||||
this.path = this.resolvePath();
|
||||
}
|
||||
|
||||
/** Collapse any dot-dot or dot items in a filepath. */
|
||||
FilePath.prototype.resolvePath = function() {
|
||||
var resolvedPath = [];
|
||||
for (var i = 0; i < this.path.length; i++) {
|
||||
if (this.path[i] == "..") resolvedPath.pop();
|
||||
else if (this.path[i] != ".") resolvedPath.push(this.path[i]);
|
||||
}
|
||||
return resolvedPath;
|
||||
}
|
||||
|
||||
/** Trim off the filename. */
|
||||
FilePath.prototype.toDir = function() {
|
||||
if (this.file) this.file = "";
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Go up a directory. */
|
||||
FilePath.prototype.upDir = function() {
|
||||
this.toDir();
|
||||
if (this.path.length) this.path.pop();
|
||||
return this;
|
||||
}
|
||||
|
||||
FilePath.prototype.toString = function() {
|
||||
return this.root
|
||||
+ this.path.join(this.slash)
|
||||
+ ((this.path.length > 0)? this.slash : "")
|
||||
+ this.file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn a path into just the name of the file.
|
||||
*/
|
||||
FilePath.fileName = function(path) {
|
||||
var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0);
|
||||
return path.substring(nameStart);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the extension of a filename
|
||||
*/
|
||||
FilePath.fileExtension = function(filename) {
|
||||
return filename.split(".").pop().toLowerCase();
|
||||
};
|
||||
|
||||
/**
|
||||
* Turn a path into just the directory part.
|
||||
*/
|
||||
FilePath.dir = function(path) {
|
||||
var nameStart = Math.max(path.lastIndexOf("/")+1, path.lastIndexOf("\\")+1, 0);
|
||||
return path.substring(0, nameStart-1);
|
||||
}
|
||||
|
||||
|
||||
importClass(java.lang.System);
|
||||
|
||||
/**
|
||||
* @namespace A collection of information about your system.
|
||||
*/
|
||||
SYS = {
|
||||
/**
|
||||
* Information about your operating system: arch, name, version.
|
||||
* @type string
|
||||
*/
|
||||
os: [
|
||||
new String(System.getProperty("os.arch")),
|
||||
new String(System.getProperty("os.name")),
|
||||
new String(System.getProperty("os.version"))
|
||||
].join(", "),
|
||||
|
||||
/**
|
||||
* Which way does your slash lean.
|
||||
* @type string
|
||||
*/
|
||||
slash: System.getProperty("file.separator")||"/",
|
||||
|
||||
/**
|
||||
* The path to the working directory where you ran java.
|
||||
* @type string
|
||||
*/
|
||||
userDir: new String(System.getProperty("user.dir")),
|
||||
|
||||
/**
|
||||
* Where is Java's home folder.
|
||||
* @type string
|
||||
*/
|
||||
javaHome: new String(System.getProperty("java.home")),
|
||||
|
||||
/**
|
||||
* The absolute path to the directory containing this script.
|
||||
* @type string
|
||||
*/
|
||||
pwd: undefined
|
||||
};
|
||||
|
||||
// jsrun appends an argument, with the path to here.
|
||||
if (arguments[arguments.length-1].match(/^-j=(.+)/)) {
|
||||
if (RegExp.$1.charAt(0) == SYS.slash || RegExp.$1.charAt(1) == ":") { // absolute path to here
|
||||
SYS.pwd = new FilePath(RegExp.$1).toDir().toString();
|
||||
}
|
||||
else { // relative path to here
|
||||
SYS.pwd = new FilePath(SYS.userDir + SYS.slash + RegExp.$1).toDir().toString();
|
||||
}
|
||||
arguments.pop();
|
||||
}
|
||||
else {
|
||||
print("The run.js script requires you use jsrun.jar.");
|
||||
quit();
|
||||
}
|
||||
|
||||
// shortcut
|
||||
var File = Packages.java.io.File;
|
||||
|
||||
/**
|
||||
* @namespace A collection of functions that deal with reading a writing to disk.
|
||||
*/
|
||||
IO = {
|
||||
|
||||
/**
|
||||
* Create a new file in the given directory, with the given name and contents.
|
||||
*/
|
||||
saveFile: function(/**string*/ outDir, /**string*/ fileName, /**string*/ content) {
|
||||
var out = new Packages.java.io.PrintWriter(
|
||||
new Packages.java.io.OutputStreamWriter(
|
||||
new Packages.java.io.FileOutputStream(outDir+SYS.slash+fileName),
|
||||
IO.encoding
|
||||
)
|
||||
);
|
||||
out.write(content);
|
||||
out.flush();
|
||||
out.close();
|
||||
},
|
||||
|
||||
/**
|
||||
* @type string
|
||||
*/
|
||||
readFile: function(/**string*/ path) {
|
||||
if (!IO.exists(path)) {
|
||||
throw "File doesn't exist there: "+path;
|
||||
}
|
||||
return readFile(path, IO.encoding);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param inFile
|
||||
* @param outDir
|
||||
* @param [fileName=The original filename]
|
||||
*/
|
||||
copyFile: function(/**string*/ inFile, /**string*/ outDir, /**string*/ fileName) {
|
||||
if (fileName == null) fileName = FilePath.fileName(inFile);
|
||||
|
||||
var inFile = new File(inFile);
|
||||
var outFile = new File(outDir+SYS.slash+fileName);
|
||||
|
||||
var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096);
|
||||
var bos = new Packages.java.io.BufferedOutputStream(new Packages.java.io.FileOutputStream(outFile), 4096);
|
||||
var theChar;
|
||||
while ((theChar = bis.read()) != -1) {
|
||||
bos.write(theChar);
|
||||
}
|
||||
bos.close();
|
||||
bis.close();
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a series of nested directories.
|
||||
*/
|
||||
mkPath: function(/**Array*/ path) {
|
||||
if (path.constructor != Array) path = path.split(/[\\\/]/);
|
||||
var make = "";
|
||||
for (var i = 0, l = path.length; i < l; i++) {
|
||||
make += path[i] + SYS.slash;
|
||||
if (! IO.exists(make)) {
|
||||
IO.makeDir(make);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a directory at the given path.
|
||||
*/
|
||||
makeDir: function(/**string*/ path) {
|
||||
(new File(path)).mkdir();
|
||||
},
|
||||
|
||||
/**
|
||||
* @type string[]
|
||||
* @param dir The starting directory to look in.
|
||||
* @param [recurse=1] How many levels deep to scan.
|
||||
* @returns An array of all the paths to files in the given dir.
|
||||
*/
|
||||
ls: function(/**string*/ dir, /**number*/ recurse, _allFiles, _path) {
|
||||
if (_path === undefined) { // initially
|
||||
var _allFiles = [];
|
||||
var _path = [dir];
|
||||
}
|
||||
if (_path.length == 0) return _allFiles;
|
||||
if (recurse === undefined) recurse = 1;
|
||||
|
||||
dir = new File(dir);
|
||||
if (!dir.directory) return [String(dir)];
|
||||
var files = dir.list();
|
||||
|
||||
for (var f = 0; f < files.length; f++) {
|
||||
var file = String(files[f]);
|
||||
if (file.match(/^\.[^\.\/\\]/)) continue; // skip dot files
|
||||
|
||||
if ((new File(_path.join(SYS.slash)+SYS.slash+file)).list()) { // it's a directory
|
||||
_path.push(file);
|
||||
if (_path.length-1 < recurse) IO.ls(_path.join(SYS.slash), recurse, _allFiles, _path);
|
||||
_path.pop();
|
||||
}
|
||||
else {
|
||||
_allFiles.push((_path.join(SYS.slash)+SYS.slash+file).replace(SYS.slash+SYS.slash, SYS.slash));
|
||||
}
|
||||
}
|
||||
|
||||
return _allFiles;
|
||||
},
|
||||
|
||||
/**
|
||||
* @type boolean
|
||||
*/
|
||||
exists: function(/**string*/ path) {
|
||||
file = new File(path);
|
||||
|
||||
if (file.isDirectory()){
|
||||
return true;
|
||||
}
|
||||
if (!file.exists()){
|
||||
return false;
|
||||
}
|
||||
if (!file.canRead()){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
open: function(/**string*/ path, /**string*/ append) {
|
||||
var append = true;
|
||||
var outFile = new File(path);
|
||||
var out = new Packages.java.io.PrintWriter(
|
||||
new Packages.java.io.OutputStreamWriter(
|
||||
new Packages.java.io.FileOutputStream(outFile, append),
|
||||
IO.encoding
|
||||
)
|
||||
);
|
||||
return out;
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets {@link IO.encoding}.
|
||||
* Encoding is used when reading and writing text to files,
|
||||
* and in the meta tags of HTML output.
|
||||
*/
|
||||
setEncoding: function(/**string*/ encoding) {
|
||||
if (/ISO-8859-([0-9]+)/i.test(encoding)) {
|
||||
IO.encoding = "ISO8859_"+RegExp.$1;
|
||||
}
|
||||
else {
|
||||
IO.encoding = encoding;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @default "utf-8"
|
||||
* @private
|
||||
*/
|
||||
encoding: "utf-8",
|
||||
|
||||
/**
|
||||
* Load the given script.
|
||||
*/
|
||||
include: function(relativePath) {
|
||||
load(SYS.pwd+relativePath);
|
||||
},
|
||||
|
||||
/**
|
||||
* Loads all scripts from the given directory path.
|
||||
*/
|
||||
includeDir: function(path) {
|
||||
if (!path) return;
|
||||
|
||||
for (var lib = IO.ls(SYS.pwd+path), i = 0; i < lib.length; i++)
|
||||
if (/\.js$/i.test(lib[i])) load(lib[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// now run the application
|
||||
IO.include("frame.js");
|
||||
IO.include("main.js");
|
||||
|
||||
main();
|
Loading…
Add table
Add a link
Reference in a new issue