mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
159 lines
3.6 KiB
JavaScript
159 lines
3.6 KiB
JavaScript
exports.readFileSync = function(filename, encoding) {
|
|
encoding = encoding || 'utf-8';
|
|
|
|
return readFile(filename, encoding);
|
|
};
|
|
|
|
var readdirSync = exports.readdirSync = function(path) {
|
|
var dir,
|
|
files;
|
|
|
|
dir = new java.io.File(path);
|
|
if (!dir.directory) { return [String(dir)]; }
|
|
|
|
files = dir.list();
|
|
|
|
return files;
|
|
};
|
|
|
|
var ls = exports.ls = function(dir, recurse, _allFiles, _path) {
|
|
var files,
|
|
file;
|
|
|
|
if (typeof _path === 'undefined') { // initially
|
|
_allFiles = [];
|
|
_path = [dir];
|
|
}
|
|
|
|
if (_path.length === 0) { return _allFiles; }
|
|
if (typeof recurse === 'undefined') { recurse = 1; }
|
|
|
|
if ( stat(dir).isFile(dir) ) {
|
|
files = [dir];
|
|
}
|
|
else {
|
|
files = readdirSync(dir);
|
|
}
|
|
|
|
for (var f = 0, lenf = files.length; f < lenf; f++) {
|
|
file = String(files[f]);
|
|
|
|
if (file.match(/^\.[^\.\/\\]/)) { continue; } // skip dot files
|
|
|
|
if ((new java.io.File(_path.join('/') + '/' + file)).list()) { // it's a directory
|
|
_path.push(file);
|
|
|
|
if (_path.length - 1 < recurse) {
|
|
ls(_path.join('/'), recurse, _allFiles, _path);
|
|
}
|
|
_path.pop();
|
|
}
|
|
else { // it's a file
|
|
_allFiles.push(
|
|
(_path.join('/') + '/' + file).replace(/[\/\\]+/g, '/')
|
|
);
|
|
}
|
|
}
|
|
|
|
return _allFiles;
|
|
};
|
|
|
|
var stat = exports.stat = function(path, encoding) {
|
|
var f = new java.io.File(path)
|
|
return {
|
|
isFile: function() {
|
|
return f.isFile();
|
|
},
|
|
isDir: function() {
|
|
return f.isDirectory();
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
exports.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] + '/';
|
|
if (! exists(make)) {
|
|
makeDir(make);
|
|
}
|
|
}
|
|
};
|
|
|
|
function makeDir(/**string*/ path) {
|
|
var dirPath = toDir(path);
|
|
(new java.io.File(dirPath)).mkdir();
|
|
}
|
|
|
|
function exists(path) {
|
|
var f = new java.io.File(path);
|
|
|
|
if (f.isDirectory()){
|
|
return true;
|
|
}
|
|
if (!f.exists()){
|
|
return false;
|
|
}
|
|
if (!f.canRead()){
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
var toDir = exports.toDir = function(path) {
|
|
var f = new java.io.File(path);
|
|
|
|
if (f.isDirectory()){
|
|
return path;
|
|
}
|
|
|
|
var parts = path.split(/[\\\/]/);
|
|
parts.pop();
|
|
|
|
return parts.join('/');
|
|
};
|
|
|
|
exports.copyFile = function(inFile, outDir, fileName) {
|
|
if (fileName == null) fileName = toFile(inFile);
|
|
|
|
outDir = toDir(outDir);
|
|
|
|
var inFile = new java.io.File(inFile);
|
|
var outFile = new java.io.File(outDir+'/'+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();
|
|
};
|
|
|
|
var toFile = exports.toFile = function(path) {
|
|
var parts = path.split(/[\\\/]/);
|
|
return parts.pop();
|
|
}
|
|
|
|
exports.writeFileSync = function(filename, data, encoding) {
|
|
encoding = encoding || 'utf-8';
|
|
|
|
var out = new Packages.java.io.PrintWriter(
|
|
new Packages.java.io.OutputStreamWriter(
|
|
new Packages.java.io.FileOutputStream(filename),
|
|
encoding
|
|
)
|
|
);
|
|
|
|
try {
|
|
out.write(data);
|
|
}
|
|
finally {
|
|
out.flush();
|
|
out.close();
|
|
}
|
|
};
|