diff --git a/.changeset/quick-coats-sneeze.md b/.changeset/quick-coats-sneeze.md new file mode 100644 index 0000000000..24f7f70e83 --- /dev/null +++ b/.changeset/quick-coats-sneeze.md @@ -0,0 +1,5 @@ +--- +'@techdocs/cli': minor +--- + +Running `@techdocs/cli generate` with the `--verbose` flag will now print the mkdocs output. diff --git a/packages/techdocs-cli/src/commands/generate/generate.ts b/packages/techdocs-cli/src/commands/generate/generate.ts index b8ad466bb3..5d80beb38a 100644 --- a/packages/techdocs-cli/src/commands/generate/generate.ts +++ b/packages/techdocs-cli/src/commands/generate/generate.ts @@ -31,8 +31,8 @@ import { ConfigReader } from '@backstage/config'; import { convertTechDocsRefToLocationAnnotation, createLogger, + getLogStream, } from '../../lib/utility'; -import { stdout } from 'process'; export default async function generate(opts: OptionValues) { // Use techdocs-node package to generate docs. Keep consistency between Backstage and CI generating docs. @@ -110,7 +110,7 @@ export default async function generate(opts: OptionValues) { : {}), logger, etag: opts.etag, - ...(process.env.LOG_LEVEL === 'debug' ? { logStream: stdout } : {}), + logStream: getLogStream(logger), siteOptions: { name: opts.siteName }, }); diff --git a/packages/techdocs-cli/src/lib/utility.ts b/packages/techdocs-cli/src/lib/utility.ts index 3f91f3c82d..00927fd1df 100644 --- a/packages/techdocs-cli/src/lib/utility.ts +++ b/packages/techdocs-cli/src/lib/utility.ts @@ -18,6 +18,8 @@ import { ParsedLocationAnnotation, } from '@backstage/plugin-techdocs-node'; import * as winston from 'winston'; +import { Writable } from 'stream'; +import { stdout } from 'process'; export const convertTechDocsRefToLocationAnnotation = ( techdocsRef: string, @@ -52,3 +54,17 @@ export const createLogger = ({ return logger; }; + +export const getLogStream = (logger: winston.Logger): Writable => { + if (process.env.LOG_LEVEL === 'debug') { + return stdout; + } + + return new Writable({ + defaultEncoding: 'utf8', + write(chunk, _encoding, next) { + logger.verbose(chunk.toString().trim()); + next(); + }, + }); +};