Large refactor

Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>
This commit is contained in:
Andre Wanlin
2022-12-27 10:43:36 -06:00
committed by Renan Mendes Carvalho
parent 339d9a5b5c
commit 15b6eaf533
14 changed files with 87 additions and 19 deletions
+3
View File
@@ -33,6 +33,7 @@ Options:
--no-docker
--techdocs-ref <HOST_TYPE:URL>
--etag <ETAG>
--site-name
-v --verbose
--omitTechdocsCoreMkdocsPlugin
--legacyCopyReadmeMdToIndexMd
@@ -98,6 +99,7 @@ Options:
--docker-entrypoint <DOCKER_ENTRYPOINT>
--docker-option <DOCKER_OPTION...>
--no-docker
--site-name
--mkdocs-port <PORT>
-v --verbose
--preview-app-bundle-path <PATH_TO_BUNDLE>
@@ -115,6 +117,7 @@ Options:
--docker-entrypoint <DOCKER_ENTRYPOINT>
--docker-option <DOCKER_OPTION...>
--no-docker
--site-name
-p, --port <PORT>
-v --verbose
-h, --help
@@ -106,6 +106,7 @@ export default async function generate(opts: OptionValues) {
logger,
etag: opts.etag,
...(process.env.LOG_LEVEL === 'debug' ? { logStream: stdout } : {}),
siteName: opts.siteName,
});
logger.info('Done!');
@@ -54,6 +54,11 @@ export function registerCommands(program: Command) {
'--etag <ETAG>',
'A unique identifier for the prepared tree e.g. commit SHA. If provided it will be stored in techdocs_metadata.json.',
)
.option(
'--site-name',
'Name for site when using default MkDocs config',
'Table of Contents',
)
.option('-v --verbose', 'Enable verbose output.', false)
.option(
'--omitTechdocsCoreMkdocsPlugin',
@@ -224,6 +229,11 @@ export function registerCommands(program: Command) {
'--no-docker',
'Do not use Docker, run `mkdocs serve` in current user environment.',
)
.option(
'--site-name',
'Name for site when using default MkDocs config',
'Table of Contents',
)
.option('-p, --port <PORT>', 'Port to serve documentation locally', '8000')
.option('-v --verbose', 'Enable verbose output.', false)
.action(lazy(() => import('./serve/mkdocs').then(m => m.default)));
@@ -250,6 +260,11 @@ export function registerCommands(program: Command) {
'--no-docker',
'Do not use Docker, use MkDocs executable in current user environment.',
)
.option(
'--site-name',
'Name for site when using default MkDocs config',
'Table of Contents',
)
.option('--mkdocs-port <PORT>', 'Port for MkDocs server to use', '8000')
.option('-v --verbose', 'Enable verbose output.', false)
.option(
@@ -19,6 +19,7 @@ import openBrowser from 'react-dev-utils/openBrowser';
import { createLogger } from '../../lib/utility';
import { runMkdocsServer } from '../../lib/mkdocsServer';
import { LogFunc, waitForSignal } from '../../lib/run';
import { getMkdocsYml } from '@backstage/plugin-techdocs-node';
export default async function serveMkdocs(opts: OptionValues) {
const logger = createLogger({ verbose: opts.verbose });
@@ -26,6 +27,9 @@ export default async function serveMkdocs(opts: OptionValues) {
const dockerAddr = `http://0.0.0.0:${opts.port}`;
const localAddr = `http://127.0.0.1:${opts.port}`;
const expectedDevAddr = opts.docker ? dockerAddr : localAddr;
await getMkdocsYml('./', opts.siteName);
// We want to open browser only once based on a log.
let boolOpenBrowserTriggered = false;
@@ -22,6 +22,7 @@ import HTTPServer from '../../lib/httpServer';
import { runMkdocsServer } from '../../lib/mkdocsServer';
import { LogFunc, waitForSignal } from '../../lib/run';
import { createLogger } from '../../lib/utility';
import { getMkdocsYml } from '@backstage/plugin-techdocs-node';
function findPreviewBundlePath(): string {
try {
@@ -64,6 +65,8 @@ export default async function serve(opts: OptionValues) {
? mkdocsDockerAddr
: mkdocsLocalAddr;
await getMkdocsYml('./', opts.siteName);
let mkdocsServerHasStarted = false;
const mkdocsLogFunc: LogFunc = data => {
// Sometimes the lines contain an unnecessary extra new line