From 0c22d0fc5da0decbe57551bfa7e747b143829049 Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 14:02:07 -0400 Subject: [PATCH 1/8] clone source dependencies into tmp folder before build --- dist/bundler/constants.js | 8 ++ dist/bundler/serve.js | 73 +++++++++++ dist/cmds/build.js | 26 ++++ dist/cmds/help.js | 32 +++++ dist/cmds/init.js | 25 ++++ dist/cmds/start.js | 36 ++++++ dist/config/react/index.js | 23 ++++ dist/config/react/serve.js | 16 +++ dist/index.js | 41 ++++++ dist/sites/react/src/App.js | 40 ++++++ dist/sites/react/src/index.html | 14 +++ dist/sites/react/src/index.js | 13 ++ dist/utils/arguments.js | 32 +++++ dist/utils/config.js | 58 +++++++++ dist/utils/debug.js | 14 +++ dist/utils/emit.js | 30 +++++ dist/utils/filesystem.js | 21 ++++ dist/utils/index.js | 30 +++++ dist/utils/modules.js | 21 ++++ dist/utils/routes.js | 56 +++++++++ notes.md | 2 + package.json | 1 + src/cmds/serve.js | 2 + src/core/externals.js | 48 +++++++ src/utils/config.js | 1 + yarn.lock | 213 ++++++++++++++++++++++++++------ 26 files changed, 838 insertions(+), 38 deletions(-) create mode 100644 dist/bundler/constants.js create mode 100644 dist/bundler/serve.js create mode 100644 dist/cmds/build.js create mode 100644 dist/cmds/help.js create mode 100644 dist/cmds/init.js create mode 100644 dist/cmds/start.js create mode 100644 dist/config/react/index.js create mode 100644 dist/config/react/serve.js create mode 100644 dist/index.js create mode 100644 dist/sites/react/src/App.js create mode 100644 dist/sites/react/src/index.html create mode 100644 dist/sites/react/src/index.js create mode 100644 dist/utils/arguments.js create mode 100644 dist/utils/config.js create mode 100644 dist/utils/debug.js create mode 100644 dist/utils/emit.js create mode 100644 dist/utils/filesystem.js create mode 100644 dist/utils/index.js create mode 100644 dist/utils/modules.js create mode 100644 dist/utils/routes.js create mode 100644 src/core/externals.js diff --git a/dist/bundler/constants.js b/dist/bundler/constants.js new file mode 100644 index 0000000..4d166c6 --- /dev/null +++ b/dist/bundler/constants.js @@ -0,0 +1,8 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DEFAULT_PORT = void 0; +const DEFAULT_PORT = process.env.PORT || 3000; +exports.DEFAULT_PORT = DEFAULT_PORT; \ No newline at end of file diff --git a/dist/bundler/serve.js b/dist/bundler/serve.js new file mode 100644 index 0000000..a823100 --- /dev/null +++ b/dist/bundler/serve.js @@ -0,0 +1,73 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _webpack = _interopRequireDefault(require("webpack")); + +var _webpackMerge = _interopRequireDefault(require("webpack-merge")); + +var _webpackDevServer = _interopRequireDefault(require("webpack-dev-server")); + +var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin")); + +var _path = _interopRequireDefault(require("path")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const defaults = { + context: _path.default.resolve(__dirname, '../sites/react'), + entry: ['./src/index.js'], + module: { + rules: [{ + test: /\.html$/, + use: [{ + loader: 'html-loader', + options: { + minimize: true + } + }] + }, { + test: /\.md$/, + use: 'raw-loader' + }] + }, + output: { + path: _path.default.join(process.cwd(), './.gitdocs-build/'), + filename: '[name].js', + publicPath: '/', + chunkFilename: '[chunkhash].js' + }, + plugins: [new _htmlWebpackPlugin.default({ + template: './src/index.html', + filename: './index.html' + }), new _webpack.default.HotModuleReplacementPlugin()], + devServer: { + contentBase: _path.default.join(process.cwd(), './.gitdocs-build'), + hot: true, + historyApiFallback: true + }, + mode: 'development' +}; +const port = 8080; +const options = { + stats: { + colors: true + } +}; + +var _default = (args, config) => { + const compiler = (0, _webpack.default)((0, _webpackMerge.default)(config, defaults)); + const server = new _webpackDevServer.default(compiler, options); + server.listen(port, 'localhost', err => { + if (err) { + console.log(err); + } + + console.log('WebpackDevServer listening at localhost:', port); + }); +}; + +exports.default = _default; \ No newline at end of file diff --git a/dist/cmds/build.js b/dist/cmds/build.js new file mode 100644 index 0000000..b7d4592 --- /dev/null +++ b/dist/cmds/build.js @@ -0,0 +1,26 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.menu = void 0; + +var _chalk = _interopRequireDefault(require("chalk")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +async function _default(config, args) { + // args.output + console.log('build'); +} + +const menu = ` + ${_chalk.default.bold.underline('usage')} + + gitdocs build [options] + + ${_chalk.default.bold.underline('options')} + + --output, -o ${_chalk.default.dim('..............')} compile files into this directory`; +exports.menu = menu; \ No newline at end of file diff --git a/dist/cmds/help.js b/dist/cmds/help.js new file mode 100644 index 0000000..5d797ac --- /dev/null +++ b/dist/cmds/help.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.menu = void 0; + +var _chalk = _interopRequireDefault(require("chalk")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const menu = ` + ${_chalk.default.bold.underline('usage')} + + gitdocs [options] + + ${_chalk.default.italic.dim('for further info about a command:')} + gitdocs --help ${_chalk.default.italic.dim('or')} gitdocs help + + ${_chalk.default.bold.underline('commands')} + + init ${_chalk.default.dim('....................')} initialize a new project + start ${_chalk.default.dim('...................')} runs the development server + build ${_chalk.default.dim('...................')} creates a static production bundle + help ${_chalk.default.dim('....................')} show the help menu for a command + + ${_chalk.default.bold.underline('options')} + + --config, -c ${_chalk.default.dim('............')} customize the config file location + --help, -h ${_chalk.default.dim('..............')} display the usage menu for a command + --version, -v ${_chalk.default.dim('...........')} show the version number`; +exports.menu = menu; \ No newline at end of file diff --git a/dist/cmds/init.js b/dist/cmds/init.js new file mode 100644 index 0000000..634f7c0 --- /dev/null +++ b/dist/cmds/init.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.menu = void 0; + +var _chalk = _interopRequireDefault(require("chalk")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +async function _default(config, args) { + console.log('init'); +} + +const menu = ` + ${_chalk.default.bold.underline('usage')} + + gitdocs init [options] + + ${_chalk.default.bold.underline('options')} + + ${_chalk.default.italic.dim('no options yet')}`; +exports.menu = menu; \ No newline at end of file diff --git a/dist/cmds/start.js b/dist/cmds/start.js new file mode 100644 index 0000000..195490d --- /dev/null +++ b/dist/cmds/start.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.menu = void 0; + +var _chalk = _interopRequireDefault(require("chalk")); + +var _routes = require("../utils/routes"); + +var _serve = _interopRequireDefault(require("../config/react/serve")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +async function _default(config, args) { + const routes = await (0, _routes.generateRoutes)(args._[1] || config.get('root'), config.get('output')); // console.log(JSON.stringify(routes)) + // fs.mkdirSync('./node_modules/gitdocs/dist/sites/react/docs') + // fs.copySync('./docs', './node_modules/gitdocs/dist/sites/react/docs') + // process.chdir('./node_modules/gitdocs/dist') + // globby, chokedir + + (0, _serve.default)(args, config.get()); +} + +const menu = ` + ${_chalk.default.bold.underline('usage')} + + gitdocs start [dir] [options] + + ${_chalk.default.bold.underline('options')} + + ${_chalk.default.italic.dim('no options yet')} +`; +exports.menu = menu; \ No newline at end of file diff --git a/dist/config/react/index.js b/dist/config/react/index.js new file mode 100644 index 0000000..8fe8236 --- /dev/null +++ b/dist/config/react/index.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _default = () => ({ + entry: ['react-hot-loader/patch'], + module: { + rules: [{ + test: /\.(js|jsx)$/, + use: [{ + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env', '@babel/preset-react'] + } + }] + }] + } +}); + +exports.default = _default; \ No newline at end of file diff --git a/dist/config/react/serve.js b/dist/config/react/serve.js new file mode 100644 index 0000000..863c9af --- /dev/null +++ b/dist/config/react/serve.js @@ -0,0 +1,16 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = serveReact; + +var _serve = _interopRequireDefault(require("../../bundler/serve")); + +var _react = _interopRequireDefault(require("../react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function serveReact(args, config) { + (0, _serve.default)(args, (0, _react.default)(config)); +} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..10e9087 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; + +var _emit = _interopRequireDefault(require("./utils/emit")); + +var _config = _interopRequireDefault(require("./utils/config")); + +var _arguments = require("./utils/arguments"); + +var _package = require("../package.json"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +async function _default() { + const args = (0, _arguments.parseArgv)(); + + try { + // create config getter/setter + const config = (0, _config.default)(args.config); // show gitdocs version + + if (args.version) { + return _emit.default.log(`v${_package.version}`); + } // pull in module for the command + + + const module = require(`./cmds/${args.mainCmd}`); // run the command, or show the help menu + + + args.help || args.mainCmd === 'help' ? _emit.default.log(module.menu, true) : await module.default(config, args); + } catch (err) { + if (err.code === 'MODULE_NOT_FOUND') { + err = `"${args.mainCmd}" is not a valid gitdocs command`; + } + + _emit.default.error(err, true); + } +} \ No newline at end of file diff --git a/dist/sites/react/src/App.js b/dist/sites/react/src/App.js new file mode 100644 index 0000000..5ce3639 --- /dev/null +++ b/dist/sites/react/src/App.js @@ -0,0 +1,40 @@ +import React from 'react' +import { Switch, Route, Link } from 'react-router-dom' + +const req = require.context(`${process.cwd}/docs`, true, /^\.\/.*\.md$/) +const files = req.keys().map(k => ({ + file: k, + contents: req(k), +})) + +const NoMatch = () =>

Nothing here.

+ +const App = () => ( +
+ + +

Home!

} /> + {files.map(f => ( + ( +
+ {f.file} {f.contents} +
+ )} + /> + ))} + +
+
+) + +export default App diff --git a/dist/sites/react/src/index.html b/dist/sites/react/src/index.html new file mode 100644 index 0000000..98839e4 --- /dev/null +++ b/dist/sites/react/src/index.html @@ -0,0 +1,14 @@ + + + + + + webpack 4 quickstart + + + +
+
+ + + \ No newline at end of file diff --git a/dist/sites/react/src/index.js b/dist/sites/react/src/index.js new file mode 100644 index 0000000..2e49dd4 --- /dev/null +++ b/dist/sites/react/src/index.js @@ -0,0 +1,13 @@ +import React from 'react' +import ReactDOM from 'react-dom' +import { BrowserRouter as Router } from 'react-router-dom' +import App from './App' + +ReactDOM.render( + + + , + document.getElementById('app'), +) + +module.hot.accept() diff --git a/dist/utils/arguments.js b/dist/utils/arguments.js new file mode 100644 index 0000000..1eff360 --- /dev/null +++ b/dist/utils/arguments.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.parseArgv = parseArgv; + +var _minimist = _interopRequireDefault(require("minimist")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function parseArgv() { + const argv = (0, _minimist.default)(process.argv.slice(2), { + boolean: ['help', 'version'], + alias: { + config: ['c'], + help: ['h'], + version: ['v'], + // cmds/build + output: ['o'] + } + }); // running `help ` works the same as ` --help` + + if (argv._[0] === 'help' && argv._[1]) { + argv._ = [argv._[1]]; + argv.help = true; + } // find the main command used + + + argv.mainCmd = argv._[0] || 'help'; + return argv; +} \ No newline at end of file diff --git a/dist/utils/config.js b/dist/utils/config.js new file mode 100644 index 0000000..0a710b0 --- /dev/null +++ b/dist/utils/config.js @@ -0,0 +1,58 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; + +var _fsExtra = _interopRequireDefault(require("fs-extra")); + +var _deepmerge = _interopRequireDefault(require("deepmerge")); + +var _objectPath = _interopRequireDefault(require("object-path")); + +var _emit = _interopRequireDefault(require("./emit")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const FILENAMES = ['.gitdocs', '.gitdocs.json']; +const DEFAULTS = { + root: 'docs', + output: 'docs/dist', + sidebar: {}, + theme: {} +}; + +function safeRead(file) { + try { + return _fsExtra.default.readJsonSync(file); + } catch (err) { + throw new Error(`Could not read config file: ${file}`); + } +} + +function _default(customFile) { + if (customFile) { + // prioritize custom config file if passed + FILENAMES.unshift(customFile); + + if (!_fsExtra.default.pathExistsSync(customFile)) { + _emit.default.warn(`"${customFile}" was not found, falling back to default config file`); + } + } + + const configFile = FILENAMES.find(_fsExtra.default.pathExistsSync); + const config = configFile ? (0, _deepmerge.default)(DEFAULTS, safeRead(configFile)) : DEFAULTS; + return { + get: key => { + return key ? _objectPath.default.get(config, key.split('.')) : config; + }, + set: (key, value) => { + _objectPath.default.set(config, key, value); + + _fsExtra.default.outputJsonSync(configFile, config, { + spaces: 2 + }); + } + }; +} \ No newline at end of file diff --git a/dist/utils/debug.js b/dist/utils/debug.js new file mode 100644 index 0000000..f68d50e --- /dev/null +++ b/dist/utils/debug.js @@ -0,0 +1,14 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _debug = _interopRequireDefault(require("debug")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var _default = (0, _debug.default)('gitdocs'); + +exports.default = _default; \ No newline at end of file diff --git a/dist/utils/emit.js b/dist/utils/emit.js new file mode 100644 index 0000000..b5cb601 --- /dev/null +++ b/dist/utils/emit.js @@ -0,0 +1,30 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _chalk = _interopRequireDefault(require("chalk")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function log(msg, bottomPad) { + process.stdout.write(`${msg}${bottomPad ? '\n' : ''}`); +} + +function warn(msg) { + process.stderr.write(_chalk.default.yellow(`Warning: ${msg}\n`)); +} + +function error(err, exit) { + err.name !== 'Error' && err.stack ? process.stderr.write(_chalk.default.dim(err.stack)) : process.stderr.write(_chalk.default.red(err.message || err)); + exit && process.exit(1); +} + +var _default = { + log, + warn, + error +}; +exports.default = _default; \ No newline at end of file diff --git a/dist/utils/filesystem.js b/dist/utils/filesystem.js new file mode 100644 index 0000000..5f1d31a --- /dev/null +++ b/dist/utils/filesystem.js @@ -0,0 +1,21 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.directoryExists = directoryExists; + +var _fsExtra = _interopRequireDefault(require("fs-extra")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Check if a directory exists. + */ +function directoryExists(dir) { + try { + return _fsExtra.default.statSync(dir).isDirectory(); + } catch (e) { + return false; + } +} \ No newline at end of file diff --git a/dist/utils/index.js b/dist/utils/index.js new file mode 100644 index 0000000..c1251d3 --- /dev/null +++ b/dist/utils/index.js @@ -0,0 +1,30 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.deepToString = deepToString; +exports.typeOf = typeOf; + +var _util = _interopRequireDefault(require("util")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Log objects in their entirety so we can see everything in debug output. + */ +function deepToString(object) { + return _util.default.inspect(object, { + colors: true, + depth: null + }); +} +/** + * Better typeof. + */ + + +function typeOf(o) { + if (Number.isNaN(o)) return 'nan'; + return Object.prototype.toString.call(o).slice(8, -1).toLowerCase(); +} \ No newline at end of file diff --git a/dist/utils/modules.js b/dist/utils/modules.js new file mode 100644 index 0000000..9e794be --- /dev/null +++ b/dist/utils/modules.js @@ -0,0 +1,21 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.modulePath = modulePath; + +var _path = _interopRequireDefault(require("path")); + +var _resolve = _interopRequireDefault(require("resolve")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Get the path to an npm module. + */ +function modulePath(module, basedir = process.cwd()) { + return _path.default.dirname(_resolve.default.sync(`${module}/package.json`, { + basedir + })); +} \ No newline at end of file diff --git a/dist/utils/routes.js b/dist/utils/routes.js new file mode 100644 index 0000000..a8b6289 --- /dev/null +++ b/dist/utils/routes.js @@ -0,0 +1,56 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.generateRoutes = generateRoutes; + +var _path = _interopRequireDefault(require("path")); + +var _fsExtra = _interopRequireDefault(require("fs-extra")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +async function generateRoutes(baseDir, outputDir) { + if (!(await _fsExtra.default.pathExists(baseDir))) { + throw new Error('Could not find any documentation'); + } + + const walk = async filename => { + const stats = await _fsExtra.default.stat(filename); + + const extension = _path.default.extname(filename); + + const basename = _path.default.basename(filename, extension); + + const isIndex = basename === 'index'; + const info = { + path: `/${isIndex ? '' : basename}` // don't include any files/folders that start with underscore + + }; + + if (/^_/.test(basename)) { + return; + } + + if (stats.isDirectory()) { + const files = await _fsExtra.default.readdir(filename); + const children = await Promise.all(files.map(child => walk(`${filename}/${child}`))); + info.children = children.filter(Boolean); + } + + if (stats.isFile()) { + if (extension !== '.md') { + return; + } + + info.inputFile = filename; + info.outputFile = filename.replace(baseDir, outputDir).replace(extension, isIndex ? '.html' : '/index.html'); + } + + return info; + }; + + const tree = await walk(baseDir); + return tree ? tree.children : []; +} \ No newline at end of file diff --git a/notes.md b/notes.md index 4c9735e..ccdf380 100644 --- a/notes.md +++ b/notes.md @@ -75,6 +75,8 @@ * version selection * custom styling for a changelog.md * overview page like https://timber.io/docs +* feedback area https://cl.ly/1h0X1c3b1Q1Z, might require a hosted plan +* potentially have a special API section that parses methods like https://doc.esdoc.org/github.com/jy95/torrent-files-library/typedef/index.html#static-typedef-customParsingFunction ### Components diff --git a/package.json b/package.json index 8a7d591..95914b7 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "eslint-config-timber": "^1.0.19", "execa": "^0.10.0", "mock-fs": "^4.5.0", + "nodegit": "^0.22.0", "npm-run-all": "^4.1.3", "nyc": "^11.7.1", "pkg": "4.2.4", diff --git a/src/cmds/serve.js b/src/cmds/serve.js index 70f2248..9d259da 100644 --- a/src/cmds/serve.js +++ b/src/cmds/serve.js @@ -1,6 +1,7 @@ const getManifest = require('../core/manifest') const getCompiler = require('../core/compiler') const startServer = require('../core/server') +const getExternals = require('../core/externals') const { styles, log, progress, fullScreen } = require('../utils/emit') module.exports = async (args, config) => { @@ -8,6 +9,7 @@ module.exports = async (args, config) => { log('Starting local development server', true) const env = 'development' + const externals = await getExternals(config) const manifest = await getManifest(env, config) const bar = progress({ total: 100, clear: true }) diff --git a/src/core/externals.js b/src/core/externals.js new file mode 100644 index 0000000..bc7b0f1 --- /dev/null +++ b/src/core/externals.js @@ -0,0 +1,48 @@ +const fs = require('fs-extra') +const git = require('nodegit') +const { log, warn, error } = require('../utils/emit') + +// Warnings for missing source information +const warnings = { + url: 'Source must have a "url" defined, skipping...', + name: 'Source must have a "name" defined, skipping...', + branch: 'No source branch specified, defaulting to master...', + root: 'No source root specified, defaulting to "/docs"...' +} + +// Default source attributes +const defaults = { + branch: 'master', + root: 'docs' +} + +module.exports = async (config) => { + // If we have no external repositories defined return early + if (!config.sources) return false + + // Ensure the tmp directory is cleared out + fs.removeSync(config.tmp) + + // Map sources into an array of clone requests + const requests = config.sources.map(s => { + // Check for proper source configuration + if (!s.url) warn(warnings.url) + if (!s.name) warn(warnings.name) + + // Print loading status + log(`Fetching ${s.url}...`) + + // Override defaults with source config + let source = Object.assign(s, defaults) + + // Clone the source folder to our tmp directory + return git.Clone(source.url, `${config.tmp}/${source.name}`) + }) + + // Wait for all cloning to finish + const cloned = await Promise + .all(requests) + .catch(err => error(`Clone error ${err}`)) + + return cloned +} diff --git a/src/utils/config.js b/src/utils/config.js index 43b9005..84ec69b 100644 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -15,6 +15,7 @@ const DEFAULT_CONFIG = { // logo: '', root: '.', output: '.gitdocs_output', + tmp: '.gitdocs_tmp', host: 'localhost', port: 8000, languages: ['bash', 'json'], diff --git a/yarn.lock b/yarn.lock index 56627c6..26bf74c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1305,6 +1305,12 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + bluebird@^3.0.0, bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -3055,6 +3061,16 @@ fs-extra@^6.0.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@~0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.27.0.tgz#66d4c25d1d2c6a8dafed7718cfcffe930f13b2c0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -3081,6 +3097,23 @@ fsevents@^1.0.0, fsevents@^1.1.2: nan "^2.9.2" node-pre-gyp "^0.9.0" +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -3230,7 +3263,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3378,7 +3411,7 @@ hastscript@^3.1.0: property-information "^3.0.0" space-separated-tokens "^1.0.0" -hawk@~3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -3587,7 +3620,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -4057,6 +4090,12 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" @@ -4112,6 +4151,12 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + last-line-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600" @@ -4232,7 +4277,7 @@ lodash.merge@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" -lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: +lodash@^4.13.1, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" @@ -4520,7 +4565,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4569,7 +4614,7 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.9.2: +nan@^2.10.0, nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" @@ -4637,6 +4682,24 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-gyp@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" @@ -4680,6 +4743,45 @@ node-pre-gyp@^0.9.0: semver "^5.3.0" tar "^4" +node-pre-gyp@~0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nodegit-promise@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/nodegit-promise/-/nodegit-promise-4.0.0.tgz#5722b184f2df7327161064a791d2e842c9167b34" + dependencies: + asap "~2.0.3" + +nodegit@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/nodegit/-/nodegit-0.22.0.tgz#3b49f732f6c19091f05563f2cd7307871ee1973c" + dependencies: + fs-extra "~0.27.0" + lodash "^4.13.1" + nan "^2.10.0" + node-gyp "^3.6.2" + node-pre-gyp "~0.6.39" + promisify-node "~0.3.0" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -4733,7 +4835,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -4839,7 +4941,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -4893,7 +4995,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.4: +osenv@0, osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: @@ -5260,6 +5362,12 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +promisify-node@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promisify-node/-/promisify-node-0.3.0.tgz#b4b55acf90faa7d2b8b90ca396899086c03060cf" + dependencies: + nodegit-promise "~4.0.0" + prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1: version "15.6.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" @@ -5685,6 +5793,33 @@ request-progress@3.0.0: dependencies: throttleit "^1.0.0" +request@2, request@^2.79.0: + version "2.85.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -5712,33 +5847,6 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@^2.79.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5813,7 +5921,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5902,6 +6010,10 @@ semver@5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + serialize-error@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" @@ -6409,6 +6521,27 @@ tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.0.0, tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + tar@^4: version "4.4.2" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462" @@ -6612,6 +6745,10 @@ uglifyjs-webpack-plugin@^1.2.4: webpack-sources "^1.1.0" worker-farm "^1.5.2" +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + uid2@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" @@ -6873,7 +7010,7 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@^1.2.9, which@^1.3.0: +which@1, which@^1.2.9, which@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: From 2bb86ee885f337a524fe1a29451548a4035806ea Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 14:04:31 -0400 Subject: [PATCH 2/8] remove old dist folder --- dist/bundler/constants.js | 8 ---- dist/bundler/serve.js | 73 --------------------------------- dist/cmds/build.js | 26 ------------ dist/cmds/help.js | 32 --------------- dist/cmds/init.js | 25 ----------- dist/cmds/start.js | 36 ---------------- dist/config/react/index.js | 23 ----------- dist/config/react/serve.js | 16 -------- dist/index.js | 41 ------------------ dist/sites/react/src/App.js | 40 ------------------ dist/sites/react/src/index.html | 14 ------- dist/sites/react/src/index.js | 13 ------ dist/utils/arguments.js | 32 --------------- dist/utils/config.js | 58 -------------------------- dist/utils/debug.js | 14 ------- dist/utils/emit.js | 30 -------------- dist/utils/filesystem.js | 21 ---------- dist/utils/index.js | 30 -------------- dist/utils/modules.js | 21 ---------- dist/utils/routes.js | 56 ------------------------- 20 files changed, 609 deletions(-) delete mode 100644 dist/bundler/constants.js delete mode 100644 dist/bundler/serve.js delete mode 100644 dist/cmds/build.js delete mode 100644 dist/cmds/help.js delete mode 100644 dist/cmds/init.js delete mode 100644 dist/cmds/start.js delete mode 100644 dist/config/react/index.js delete mode 100644 dist/config/react/serve.js delete mode 100644 dist/index.js delete mode 100644 dist/sites/react/src/App.js delete mode 100644 dist/sites/react/src/index.html delete mode 100644 dist/sites/react/src/index.js delete mode 100644 dist/utils/arguments.js delete mode 100644 dist/utils/config.js delete mode 100644 dist/utils/debug.js delete mode 100644 dist/utils/emit.js delete mode 100644 dist/utils/filesystem.js delete mode 100644 dist/utils/index.js delete mode 100644 dist/utils/modules.js delete mode 100644 dist/utils/routes.js diff --git a/dist/bundler/constants.js b/dist/bundler/constants.js deleted file mode 100644 index 4d166c6..0000000 --- a/dist/bundler/constants.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.DEFAULT_PORT = void 0; -const DEFAULT_PORT = process.env.PORT || 3000; -exports.DEFAULT_PORT = DEFAULT_PORT; \ No newline at end of file diff --git a/dist/bundler/serve.js b/dist/bundler/serve.js deleted file mode 100644 index a823100..0000000 --- a/dist/bundler/serve.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _webpack = _interopRequireDefault(require("webpack")); - -var _webpackMerge = _interopRequireDefault(require("webpack-merge")); - -var _webpackDevServer = _interopRequireDefault(require("webpack-dev-server")); - -var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin")); - -var _path = _interopRequireDefault(require("path")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const defaults = { - context: _path.default.resolve(__dirname, '../sites/react'), - entry: ['./src/index.js'], - module: { - rules: [{ - test: /\.html$/, - use: [{ - loader: 'html-loader', - options: { - minimize: true - } - }] - }, { - test: /\.md$/, - use: 'raw-loader' - }] - }, - output: { - path: _path.default.join(process.cwd(), './.gitdocs-build/'), - filename: '[name].js', - publicPath: '/', - chunkFilename: '[chunkhash].js' - }, - plugins: [new _htmlWebpackPlugin.default({ - template: './src/index.html', - filename: './index.html' - }), new _webpack.default.HotModuleReplacementPlugin()], - devServer: { - contentBase: _path.default.join(process.cwd(), './.gitdocs-build'), - hot: true, - historyApiFallback: true - }, - mode: 'development' -}; -const port = 8080; -const options = { - stats: { - colors: true - } -}; - -var _default = (args, config) => { - const compiler = (0, _webpack.default)((0, _webpackMerge.default)(config, defaults)); - const server = new _webpackDevServer.default(compiler, options); - server.listen(port, 'localhost', err => { - if (err) { - console.log(err); - } - - console.log('WebpackDevServer listening at localhost:', port); - }); -}; - -exports.default = _default; \ No newline at end of file diff --git a/dist/cmds/build.js b/dist/cmds/build.js deleted file mode 100644 index b7d4592..0000000 --- a/dist/cmds/build.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -exports.menu = void 0; - -var _chalk = _interopRequireDefault(require("chalk")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function _default(config, args) { - // args.output - console.log('build'); -} - -const menu = ` - ${_chalk.default.bold.underline('usage')} - - gitdocs build [options] - - ${_chalk.default.bold.underline('options')} - - --output, -o ${_chalk.default.dim('..............')} compile files into this directory`; -exports.menu = menu; \ No newline at end of file diff --git a/dist/cmds/help.js b/dist/cmds/help.js deleted file mode 100644 index 5d797ac..0000000 --- a/dist/cmds/help.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.menu = void 0; - -var _chalk = _interopRequireDefault(require("chalk")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const menu = ` - ${_chalk.default.bold.underline('usage')} - - gitdocs [options] - - ${_chalk.default.italic.dim('for further info about a command:')} - gitdocs --help ${_chalk.default.italic.dim('or')} gitdocs help - - ${_chalk.default.bold.underline('commands')} - - init ${_chalk.default.dim('....................')} initialize a new project - start ${_chalk.default.dim('...................')} runs the development server - build ${_chalk.default.dim('...................')} creates a static production bundle - help ${_chalk.default.dim('....................')} show the help menu for a command - - ${_chalk.default.bold.underline('options')} - - --config, -c ${_chalk.default.dim('............')} customize the config file location - --help, -h ${_chalk.default.dim('..............')} display the usage menu for a command - --version, -v ${_chalk.default.dim('...........')} show the version number`; -exports.menu = menu; \ No newline at end of file diff --git a/dist/cmds/init.js b/dist/cmds/init.js deleted file mode 100644 index 634f7c0..0000000 --- a/dist/cmds/init.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -exports.menu = void 0; - -var _chalk = _interopRequireDefault(require("chalk")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function _default(config, args) { - console.log('init'); -} - -const menu = ` - ${_chalk.default.bold.underline('usage')} - - gitdocs init [options] - - ${_chalk.default.bold.underline('options')} - - ${_chalk.default.italic.dim('no options yet')}`; -exports.menu = menu; \ No newline at end of file diff --git a/dist/cmds/start.js b/dist/cmds/start.js deleted file mode 100644 index 195490d..0000000 --- a/dist/cmds/start.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -exports.menu = void 0; - -var _chalk = _interopRequireDefault(require("chalk")); - -var _routes = require("../utils/routes"); - -var _serve = _interopRequireDefault(require("../config/react/serve")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function _default(config, args) { - const routes = await (0, _routes.generateRoutes)(args._[1] || config.get('root'), config.get('output')); // console.log(JSON.stringify(routes)) - // fs.mkdirSync('./node_modules/gitdocs/dist/sites/react/docs') - // fs.copySync('./docs', './node_modules/gitdocs/dist/sites/react/docs') - // process.chdir('./node_modules/gitdocs/dist') - // globby, chokedir - - (0, _serve.default)(args, config.get()); -} - -const menu = ` - ${_chalk.default.bold.underline('usage')} - - gitdocs start [dir] [options] - - ${_chalk.default.bold.underline('options')} - - ${_chalk.default.italic.dim('no options yet')} -`; -exports.menu = menu; \ No newline at end of file diff --git a/dist/config/react/index.js b/dist/config/react/index.js deleted file mode 100644 index 8fe8236..0000000 --- a/dist/config/react/index.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _default = () => ({ - entry: ['react-hot-loader/patch'], - module: { - rules: [{ - test: /\.(js|jsx)$/, - use: [{ - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env', '@babel/preset-react'] - } - }] - }] - } -}); - -exports.default = _default; \ No newline at end of file diff --git a/dist/config/react/serve.js b/dist/config/react/serve.js deleted file mode 100644 index 863c9af..0000000 --- a/dist/config/react/serve.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = serveReact; - -var _serve = _interopRequireDefault(require("../../bundler/serve")); - -var _react = _interopRequireDefault(require("../react")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function serveReact(args, config) { - (0, _serve.default)(args, (0, _react.default)(config)); -} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 10e9087..0000000 --- a/dist/index.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; - -var _emit = _interopRequireDefault(require("./utils/emit")); - -var _config = _interopRequireDefault(require("./utils/config")); - -var _arguments = require("./utils/arguments"); - -var _package = require("../package.json"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function _default() { - const args = (0, _arguments.parseArgv)(); - - try { - // create config getter/setter - const config = (0, _config.default)(args.config); // show gitdocs version - - if (args.version) { - return _emit.default.log(`v${_package.version}`); - } // pull in module for the command - - - const module = require(`./cmds/${args.mainCmd}`); // run the command, or show the help menu - - - args.help || args.mainCmd === 'help' ? _emit.default.log(module.menu, true) : await module.default(config, args); - } catch (err) { - if (err.code === 'MODULE_NOT_FOUND') { - err = `"${args.mainCmd}" is not a valid gitdocs command`; - } - - _emit.default.error(err, true); - } -} \ No newline at end of file diff --git a/dist/sites/react/src/App.js b/dist/sites/react/src/App.js deleted file mode 100644 index 5ce3639..0000000 --- a/dist/sites/react/src/App.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react' -import { Switch, Route, Link } from 'react-router-dom' - -const req = require.context(`${process.cwd}/docs`, true, /^\.\/.*\.md$/) -const files = req.keys().map(k => ({ - file: k, - contents: req(k), -})) - -const NoMatch = () =>

Nothing here.

- -const App = () => ( -
- - -

Home!

} /> - {files.map(f => ( - ( -
- {f.file} {f.contents} -
- )} - /> - ))} - -
-
-) - -export default App diff --git a/dist/sites/react/src/index.html b/dist/sites/react/src/index.html deleted file mode 100644 index 98839e4..0000000 --- a/dist/sites/react/src/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - webpack 4 quickstart - - - -
-
- - - \ No newline at end of file diff --git a/dist/sites/react/src/index.js b/dist/sites/react/src/index.js deleted file mode 100644 index 2e49dd4..0000000 --- a/dist/sites/react/src/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom' -import { BrowserRouter as Router } from 'react-router-dom' -import App from './App' - -ReactDOM.render( - - - , - document.getElementById('app'), -) - -module.hot.accept() diff --git a/dist/utils/arguments.js b/dist/utils/arguments.js deleted file mode 100644 index 1eff360..0000000 --- a/dist/utils/arguments.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.parseArgv = parseArgv; - -var _minimist = _interopRequireDefault(require("minimist")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parseArgv() { - const argv = (0, _minimist.default)(process.argv.slice(2), { - boolean: ['help', 'version'], - alias: { - config: ['c'], - help: ['h'], - version: ['v'], - // cmds/build - output: ['o'] - } - }); // running `help ` works the same as ` --help` - - if (argv._[0] === 'help' && argv._[1]) { - argv._ = [argv._[1]]; - argv.help = true; - } // find the main command used - - - argv.mainCmd = argv._[0] || 'help'; - return argv; -} \ No newline at end of file diff --git a/dist/utils/config.js b/dist/utils/config.js deleted file mode 100644 index 0a710b0..0000000 --- a/dist/utils/config.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; - -var _fsExtra = _interopRequireDefault(require("fs-extra")); - -var _deepmerge = _interopRequireDefault(require("deepmerge")); - -var _objectPath = _interopRequireDefault(require("object-path")); - -var _emit = _interopRequireDefault(require("./emit")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const FILENAMES = ['.gitdocs', '.gitdocs.json']; -const DEFAULTS = { - root: 'docs', - output: 'docs/dist', - sidebar: {}, - theme: {} -}; - -function safeRead(file) { - try { - return _fsExtra.default.readJsonSync(file); - } catch (err) { - throw new Error(`Could not read config file: ${file}`); - } -} - -function _default(customFile) { - if (customFile) { - // prioritize custom config file if passed - FILENAMES.unshift(customFile); - - if (!_fsExtra.default.pathExistsSync(customFile)) { - _emit.default.warn(`"${customFile}" was not found, falling back to default config file`); - } - } - - const configFile = FILENAMES.find(_fsExtra.default.pathExistsSync); - const config = configFile ? (0, _deepmerge.default)(DEFAULTS, safeRead(configFile)) : DEFAULTS; - return { - get: key => { - return key ? _objectPath.default.get(config, key.split('.')) : config; - }, - set: (key, value) => { - _objectPath.default.set(config, key, value); - - _fsExtra.default.outputJsonSync(configFile, config, { - spaces: 2 - }); - } - }; -} \ No newline at end of file diff --git a/dist/utils/debug.js b/dist/utils/debug.js deleted file mode 100644 index f68d50e..0000000 --- a/dist/utils/debug.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _debug = _interopRequireDefault(require("debug")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _default = (0, _debug.default)('gitdocs'); - -exports.default = _default; \ No newline at end of file diff --git a/dist/utils/emit.js b/dist/utils/emit.js deleted file mode 100644 index b5cb601..0000000 --- a/dist/utils/emit.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _chalk = _interopRequireDefault(require("chalk")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function log(msg, bottomPad) { - process.stdout.write(`${msg}${bottomPad ? '\n' : ''}`); -} - -function warn(msg) { - process.stderr.write(_chalk.default.yellow(`Warning: ${msg}\n`)); -} - -function error(err, exit) { - err.name !== 'Error' && err.stack ? process.stderr.write(_chalk.default.dim(err.stack)) : process.stderr.write(_chalk.default.red(err.message || err)); - exit && process.exit(1); -} - -var _default = { - log, - warn, - error -}; -exports.default = _default; \ No newline at end of file diff --git a/dist/utils/filesystem.js b/dist/utils/filesystem.js deleted file mode 100644 index 5f1d31a..0000000 --- a/dist/utils/filesystem.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.directoryExists = directoryExists; - -var _fsExtra = _interopRequireDefault(require("fs-extra")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Check if a directory exists. - */ -function directoryExists(dir) { - try { - return _fsExtra.default.statSync(dir).isDirectory(); - } catch (e) { - return false; - } -} \ No newline at end of file diff --git a/dist/utils/index.js b/dist/utils/index.js deleted file mode 100644 index c1251d3..0000000 --- a/dist/utils/index.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.deepToString = deepToString; -exports.typeOf = typeOf; - -var _util = _interopRequireDefault(require("util")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Log objects in their entirety so we can see everything in debug output. - */ -function deepToString(object) { - return _util.default.inspect(object, { - colors: true, - depth: null - }); -} -/** - * Better typeof. - */ - - -function typeOf(o) { - if (Number.isNaN(o)) return 'nan'; - return Object.prototype.toString.call(o).slice(8, -1).toLowerCase(); -} \ No newline at end of file diff --git a/dist/utils/modules.js b/dist/utils/modules.js deleted file mode 100644 index 9e794be..0000000 --- a/dist/utils/modules.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.modulePath = modulePath; - -var _path = _interopRequireDefault(require("path")); - -var _resolve = _interopRequireDefault(require("resolve")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Get the path to an npm module. - */ -function modulePath(module, basedir = process.cwd()) { - return _path.default.dirname(_resolve.default.sync(`${module}/package.json`, { - basedir - })); -} \ No newline at end of file diff --git a/dist/utils/routes.js b/dist/utils/routes.js deleted file mode 100644 index a8b6289..0000000 --- a/dist/utils/routes.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.generateRoutes = generateRoutes; - -var _path = _interopRequireDefault(require("path")); - -var _fsExtra = _interopRequireDefault(require("fs-extra")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function generateRoutes(baseDir, outputDir) { - if (!(await _fsExtra.default.pathExists(baseDir))) { - throw new Error('Could not find any documentation'); - } - - const walk = async filename => { - const stats = await _fsExtra.default.stat(filename); - - const extension = _path.default.extname(filename); - - const basename = _path.default.basename(filename, extension); - - const isIndex = basename === 'index'; - const info = { - path: `/${isIndex ? '' : basename}` // don't include any files/folders that start with underscore - - }; - - if (/^_/.test(basename)) { - return; - } - - if (stats.isDirectory()) { - const files = await _fsExtra.default.readdir(filename); - const children = await Promise.all(files.map(child => walk(`${filename}/${child}`))); - info.children = children.filter(Boolean); - } - - if (stats.isFile()) { - if (extension !== '.md') { - return; - } - - info.inputFile = filename; - info.outputFile = filename.replace(baseDir, outputDir).replace(extension, isIndex ? '.html' : '/index.html'); - } - - return info; - }; - - const tree = await walk(baseDir); - return tree ? tree.children : []; -} \ No newline at end of file From 76e3dab5aa6daaa7a545fa4cd8b8117dcd48da81 Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 16:32:35 -0400 Subject: [PATCH 3/8] fix linting errors --- package.json | 2 +- src/cmds/serve.js | 2 +- src/core/externals.js | 54 +++++++++++++++++++++---------------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 95914b7..5df2075 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "eslint-config-timber": "^1.0.19", "execa": "^0.10.0", "mock-fs": "^4.5.0", - "nodegit": "^0.22.0", "npm-run-all": "^4.1.3", "nyc": "^11.7.1", "pkg": "4.2.4", @@ -69,6 +68,7 @@ "html-minifier": "^3.5.15", "markdown-to-jsx": "^6.6.2", "minimist": "^1.2.0", + "nodegit": "^0.22.0", "progress": "^2.0.0", "prop-types": "^15.6.1", "react": "^16.3.2", diff --git a/src/cmds/serve.js b/src/cmds/serve.js index 9d259da..5939dc1 100644 --- a/src/cmds/serve.js +++ b/src/cmds/serve.js @@ -9,7 +9,7 @@ module.exports = async (args, config) => { log('Starting local development server', true) const env = 'development' - const externals = await getExternals(config) + await getExternals(config) const manifest = await getManifest(env, config) const bar = progress({ total: 100, clear: true }) diff --git a/src/core/externals.js b/src/core/externals.js index bc7b0f1..4ceb4aa 100644 --- a/src/core/externals.js +++ b/src/core/externals.js @@ -4,45 +4,45 @@ const { log, warn, error } = require('../utils/emit') // Warnings for missing source information const warnings = { - url: 'Source must have a "url" defined, skipping...', - name: 'Source must have a "name" defined, skipping...', - branch: 'No source branch specified, defaulting to master...', - root: 'No source root specified, defaulting to "/docs"...' + url: 'Source must have a "url" defined, skipping...', + name: 'Source must have a "name" defined, skipping...', + branch: 'No source branch specified, defaulting to master...', + root: 'No source root specified, defaulting to "/docs"...' } // Default source attributes const defaults = { - branch: 'master', - root: 'docs' + branch: 'master', + root: 'docs' } module.exports = async (config) => { - // If we have no external repositories defined return early - if (!config.sources) return false + // If we have no external repositories defined return early + if (!config.sources) return false - // Ensure the tmp directory is cleared out - fs.removeSync(config.tmp) + // Ensure the tmp directory is cleared out + fs.removeSync(config.tmp) - // Map sources into an array of clone requests - const requests = config.sources.map(s => { - // Check for proper source configuration - if (!s.url) warn(warnings.url) - if (!s.name) warn(warnings.name) + // Map sources into an array of clone requests + const requests = config.sources.map(s => { + // Check for proper source configuration + if (!s.url) warn(warnings.url) + if (!s.name) warn(warnings.name) - // Print loading status - log(`Fetching ${s.url}...`) + // Print loading status + log(`Fetching ${s.url}...`) - // Override defaults with source config - let source = Object.assign(s, defaults) + // Override defaults with source config + const source = Object.assign(s, defaults) - // Clone the source folder to our tmp directory - return git.Clone(source.url, `${config.tmp}/${source.name}`) - }) + // Clone the source folder to our tmp directory + return git.Clone(source.url, `${config.tmp}/${source.name}`) + }) - // Wait for all cloning to finish - const cloned = await Promise - .all(requests) - .catch(err => error(`Clone error ${err}`)) + // Wait for all cloning to finish + const cloned = await Promise + .all(requests) + .catch(err => error(`Clone error ${err}`)) - return cloned + return cloned } From 20331253cae40269d0e3d4e4affda7672f3586e2 Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 19:20:01 -0400 Subject: [PATCH 4/8] ensure proper branch is checked out --- src/cmds/serve.js | 4 +-- src/core/externals.js | 79 +++++++++++++++++++++++++++++++++++++------ src/core/manifest.js | 2 +- 3 files changed, 71 insertions(+), 14 deletions(-) diff --git a/src/cmds/serve.js b/src/cmds/serve.js index 314fb19..f5c81f4 100644 --- a/src/cmds/serve.js +++ b/src/cmds/serve.js @@ -9,8 +9,8 @@ module.exports = async (args, config) => { log('Starting local development server', true) const env = 'development' - await getExternals(config) - const manifest = await getManifest(env, config) + const externals = await getExternals(config) + const manifest = await getManifest(env, config, externals) const bar = progress({ total: 100, clear: true }) const props = { diff --git a/src/core/externals.js b/src/core/externals.js index 4ceb4aa..e6f545e 100644 --- a/src/core/externals.js +++ b/src/core/externals.js @@ -1,4 +1,5 @@ const fs = require('fs-extra') +const path = require('path') const git = require('nodegit') const { log, warn, error } = require('../utils/emit') @@ -13,18 +14,27 @@ const warnings = { // Default source attributes const defaults = { branch: 'master', - root: 'docs' + root: 'docs/' } -module.exports = async (config) => { - // If we have no external repositories defined return early - if (!config.sources) return false +// Tmp directories uses to clone and extract docs +const directories = { + tmp: '.gitdocs_tmp', + externals: '.gitdocs_externals' +} - // Ensure the tmp directory is cleared out - fs.removeSync(config.tmp) +function checkoutBranch (repo, source) { + return repo + .getBranch(`refs/remotes/origin/${source.branch}`) + .then(b => repo.checkoutRef(b)) +} + +function cloneExternals (sources) { + // Ensure the externals directory is cleared out + fs.removeSync(directories.externals) // Map sources into an array of clone requests - const requests = config.sources.map(s => { + const requests = sources.map(async (s) => { // Check for proper source configuration if (!s.url) warn(warnings.url) if (!s.name) warn(warnings.name) @@ -33,16 +43,63 @@ module.exports = async (config) => { log(`Fetching ${s.url}...`) // Override defaults with source config - const source = Object.assign(s, defaults) + const source = Object.assign({}, defaults, s) // Clone the source folder to our tmp directory - return git.Clone(source.url, `${config.tmp}/${source.name}`) + const repo = await git.Clone(source.url, `${directories.externals}/${source.name}`) + return checkoutBranch(repo, source) }) // Wait for all cloning to finish - const cloned = await Promise + return Promise .all(requests) .catch(err => error(`Clone error ${err}`)) +} + +function extractDocs (sources) { + // Valid external sources will be collected here + let externals = [] + + // Ensure the tmp directory is cleared out + fs.removeSync(directories.tmp) + + sources.forEach(s => { + // Get the root path for the external source + const rootPath = s.root || defaults.root + + // Get the actual location of the docs + const docsRoot = path.resolve( + `${directories.externals}/${s.name}`, + rootPath + ) + + // Warn if the docs root doesn't exist + if (!fs.existsSync(docsRoot)) { + return warn(`No docs root found for ${s.name || 'source'}, skipping...`) + } + + // Add to the list of valid external doc sources + externals.push(s.name) + + // Move the external docs repo to our tmp folder + fs.copySync(docsRoot, `${directories.tmp}/${s.name}`) + }) + + return externals +} + +module.exports = async (config) => { + // If we have no external repositories defined return early + if (!config.sources) return false + + // Clone all external sources into externals folder + const repositories = await cloneExternals(config.sources) + + // Extract docs directories and move to gitdocs tmp folder + const externals = extractDocs(config.sources) + + // Ensure our externals directory is cleared out + fs.removeSync(directories.externals) - return cloned + return externals } diff --git a/src/core/manifest.js b/src/core/manifest.js index 0b7dcf4..fef8dcb 100644 --- a/src/core/manifest.js +++ b/src/core/manifest.js @@ -133,7 +133,7 @@ async function buildManifest (env, opts = {}) { } } -module.exports = async (env, config) => { +module.exports = async (env, config, externals) => { if (!await fs.pathExists(config.root)) { throw new Error(`Could not find root documentation folder: ${config.root}`) } From cd9b63a72724a79e72f15b57a6108a0beafb49b0 Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 19:24:55 -0400 Subject: [PATCH 5/8] use spread instead of Object.assign --- src/cmds/serve.js | 3 ++- src/core/externals.js | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/cmds/serve.js b/src/cmds/serve.js index f5c81f4..fbeb071 100644 --- a/src/cmds/serve.js +++ b/src/cmds/serve.js @@ -33,4 +33,5 @@ module.exports.menu = ` ${styles.title('Options')} - ${styles.subnote('no options yet')}` + ${styles.subnote('no options yet')} +` diff --git a/src/core/externals.js b/src/core/externals.js index e6f545e..4726c57 100644 --- a/src/core/externals.js +++ b/src/core/externals.js @@ -43,7 +43,7 @@ function cloneExternals (sources) { log(`Fetching ${s.url}...`) // Override defaults with source config - const source = Object.assign({}, defaults, s) + const source = { ...defaults, ...s } // Clone the source folder to our tmp directory const repo = await git.Clone(source.url, `${directories.externals}/${source.name}`) @@ -58,7 +58,7 @@ function cloneExternals (sources) { function extractDocs (sources) { // Valid external sources will be collected here - let externals = [] + const externals = [] // Ensure the tmp directory is cleared out fs.removeSync(directories.tmp) @@ -66,13 +66,13 @@ function extractDocs (sources) { sources.forEach(s => { // Get the root path for the external source const rootPath = s.root || defaults.root - + // Get the actual location of the docs const docsRoot = path.resolve( `${directories.externals}/${s.name}`, rootPath ) - + // Warn if the docs root doesn't exist if (!fs.existsSync(docsRoot)) { return warn(`No docs root found for ${s.name || 'source'}, skipping...`) @@ -93,13 +93,13 @@ module.exports = async (config) => { if (!config.sources) return false // Clone all external sources into externals folder - const repositories = await cloneExternals(config.sources) + await cloneExternals(config.sources) // Extract docs directories and move to gitdocs tmp folder const externals = extractDocs(config.sources) // Ensure our externals directory is cleared out - fs.removeSync(directories.externals) + // fs.removeSync(directories.externals) return externals } From fa8c765bbc1a89049bda1d6ec0c6f7ee6e32b38f Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 21:17:59 -0400 Subject: [PATCH 6/8] clean up externals when done --- src/core/externals.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/externals.js b/src/core/externals.js index 4726c57..8d1cf2d 100644 --- a/src/core/externals.js +++ b/src/core/externals.js @@ -89,6 +89,7 @@ function extractDocs (sources) { } module.exports = async (config) => { + return false // If we have no external repositories defined return early if (!config.sources) return false @@ -99,7 +100,7 @@ module.exports = async (config) => { const externals = extractDocs(config.sources) // Ensure our externals directory is cleared out - // fs.removeSync(directories.externals) + fs.removeSync(directories.externals) return externals } From c4d32d44dc0b380d94e9dbe4c326fbc8dee5ac73 Mon Sep 17 00:00:00 2001 From: Zach Sherman Date: Tue, 8 May 2018 21:18:33 -0400 Subject: [PATCH 7/8] remove early return --- src/core/externals.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/externals.js b/src/core/externals.js index 8d1cf2d..8fc985a 100644 --- a/src/core/externals.js +++ b/src/core/externals.js @@ -89,7 +89,6 @@ function extractDocs (sources) { } module.exports = async (config) => { - return false // If we have no external repositories defined return early if (!config.sources) return false From 6662c792b8c8de7dd97fe631a692d3fb52649efc Mon Sep 17 00:00:00 2001 From: Jason Maurer Date: Wed, 9 May 2018 11:02:20 -0400 Subject: [PATCH 8/8] fix tests on travis --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index bcc7b6e..0d6e064 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,3 +6,9 @@ node_js: - "8.6" after_success: - npm run coveralls +addons: # for nodegit deps + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - libstdc++-4.9-dev