67 lines
2.2 KiB
JavaScript
67 lines
2.2 KiB
JavaScript
#! /usr/bin/env node
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var fs = require("fs");
|
|
var path = require("path");
|
|
var parser = require('gitignore-parser');
|
|
var symLinks = {};
|
|
var ignoreFiles = ['.git'];
|
|
var vscodeignores = {};
|
|
function rdSync(dpath, tree) {
|
|
var files = fs.readdirSync(dpath);
|
|
if (files.indexOf('.vscodeignore') > -1) {
|
|
vscodeignores[dpath] = parser.compile(fs.readFileSync(path.join(dpath, '.vscodeignore'), 'utf8'));
|
|
}
|
|
var vscodeignorePath = Object.keys(vscodeignores).find(function (f) { return dpath.indexOf(f) === 0; });
|
|
var vscodeignore = vscodeignorePath ? vscodeignores[vscodeignorePath] : undefined;
|
|
files.forEach(function (file) {
|
|
// ignore non-essential directories / files
|
|
if (ignoreFiles.indexOf(file) !== -1 || file[0] === '.') {
|
|
return;
|
|
}
|
|
var fpath = "".concat(dpath, "/").concat(file);
|
|
if (vscodeignore && vscodeignore.denies(fpath.replace(vscodeignorePath, ''))) {
|
|
return;
|
|
}
|
|
try {
|
|
// Avoid infinite loops.
|
|
var lstat = fs.lstatSync(fpath);
|
|
if (lstat.isSymbolicLink()) {
|
|
if (!symLinks[lstat.dev]) {
|
|
symLinks[lstat.dev] = {};
|
|
}
|
|
// Ignore if we've seen it before
|
|
if (symLinks[lstat.dev][lstat.ino]) {
|
|
return;
|
|
}
|
|
symLinks[lstat.dev][lstat.ino] = true;
|
|
}
|
|
var fstat = fs.statSync(fpath);
|
|
if (fstat.isDirectory()) {
|
|
var child = tree[file] = {};
|
|
rdSync(fpath, child);
|
|
}
|
|
else {
|
|
tree[file] = null;
|
|
}
|
|
}
|
|
catch (e) {
|
|
// Ignore and move on.
|
|
}
|
|
});
|
|
return tree;
|
|
}
|
|
var fsListing = JSON.stringify(rdSync(process.cwd(), {}));
|
|
if (process.argv.length === 3) {
|
|
var fname = process.argv[2];
|
|
var parent_1 = path.dirname(fname);
|
|
while (!fs.existsSync(parent_1)) {
|
|
fs.mkdirSync(parent_1);
|
|
parent_1 = path.dirname(parent_1);
|
|
}
|
|
fs.writeFileSync(fname, fsListing, { encoding: 'utf8' });
|
|
}
|
|
else {
|
|
console.log(fsListing);
|
|
}
|
|
//# sourceMappingURL=make_http_index.js.map
|