generated from SAP/repository-template
-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
232 additions
and
149 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#!/usr/bin/env node | ||
|
||
// CLI Help Extractor | ||
// ============================ | ||
// runs "npm exec --package=<tool> -c <cmd>" to extract the synopsis and version | ||
// of the latest tool version and writes it to a markdown file | ||
// that is included in a documentation page. | ||
|
||
import * as proc from 'node:child_process' | ||
import * as util from 'node:util' | ||
|
||
const exec = util.promisify(proc.exec) | ||
const pkg = process.argv[2] | ||
if (!pkg) throw new Error('Missing package') | ||
const cmd = process.argv[3] || pkg.split('/').pop() | ||
const cwd = process.argv[4] || process.cwd() | ||
const unstyled = process.argv.some(a => a === '--unstyled') | ||
|
||
const toOutput = (version, str) => [ | ||
'<!-- this file is automatically generated and updated by a github action -->', | ||
`${unstyled ? '```log' : '<pre class="log">'}`, | ||
`> ${cmd}`, | ||
'', | ||
str | ||
.replace(/\n.*home.*[|:].*/g, '') // remove absolute cds home path as it's system-specific | ||
.replace(/\<(.*?)\>/g, '<$1>') // <foo> -> <foo> | ||
.replace(/^\x1b\[1m(.*?)\x1b\[0m\n/gm, '<strong>$1</strong>') // bold at beginning of line -> strong | ||
.replace(/(\s*)\x1b\[4m(.*?)\x1b\[0m/g, '$1<i>$2</i>') // underline -> i | ||
.replace(/(\s*)\x1b\[\d+m(.*?)\x1b\[0m/g, '$1<em>$2</em>') // other colors -> em | ||
, `${unstyled ? '```' : '</pre>'}` | ||
].join('\n') | ||
|
||
try { | ||
const version = (await exec(`npm view ${pkg} version`)).stdout.trim() | ||
const cmdString = `npm exec --package=${pkg}@${version} -c "${cmd}"` | ||
console.error(`> ${cmdString}`) | ||
const { stdout: cmdOut } = await exec(cmdString, {cwd, env: { FORCE_COLOR: 'true', ...process.env }}) | ||
|
||
// some very basic plausibility checks to make sure we don't | ||
// end up with garbage or npx errors in the markdown | ||
if (!/\d+\.\d+\.\d+/.test(version)) { | ||
throw new Error(`unexpected version: ${version}`) | ||
} | ||
if (!cmdOut) { | ||
throw new Error(`no output from: ${cmdString}`) | ||
} | ||
if (cmd.includes('help') && !/SYNOPSIS|USAGE/.test(cmdOut)) { | ||
throw new Error(`unexpected synopsis: ${cmdOut}`) | ||
} | ||
console.log(toOutput(version.trim(), cmdOut.trim())) | ||
} catch (e) { | ||
console.error(`could not generate synopsis: ${e.message}`, e) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/usr/bin/env bash | ||
|
||
dir=`dirname -- "$0"` | ||
|
||
# create a temp project to run the commands in | ||
proj=/tmp/your-project | ||
rm -rf ${proj} | ||
mkdir -p `dirname ${proj}` | ||
pushd `dirname ${proj}` && cds init `basename ${proj}` && pushd `basename ${proj}` && npm i && popd && popd | ||
|
||
echo | ||
echo "Grabbing CLI texts..." | ||
${dir}/grab-cli-texts.js @cap-js/cds-typer "cds-typer --help" ${proj} > ${dir}/../../tools/assets/help/cds-typer.out.md | ||
${dir}/grab-cli-texts.js @sap/cds-dk "cds --help" ${proj} > ${dir}/../../tools/assets/help/cds-help.out.md | ||
${dir}/grab-cli-texts.js @sap/cds-dk "cds watch --help" ${proj} > ${dir}/../../tools/assets/help/cds-watch.out.md | ||
${dir}/grab-cli-texts.js @sap/cds-dk "cds version" ${proj} > ${dir}/../../tools/assets/help/cds-version.out.md | ||
${dir}/grab-cli-texts.js @sap/cds-dk "cds version --markdown" ${proj} > ${dir}/../../tools/assets/help/cds-version-md.out.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
<!-- this file is automatically generated and updated by a github action --> | ||
<pre class="log"> | ||
> cds --help | ||
|
||
<strong>USAGE</strong> | ||
<em>cds</em> <command> [<args>] | ||
<em>cds</em> <src> = <em>cds compile</em> <src> | ||
<em>cds</em> = <em>cds help</em> | ||
|
||
<strong>COMMANDS</strong> | ||
<em>i</em> | <em>init</em> jump-start cds-based projects | ||
<em>a</em> | <em>add</em> add a feature to an existing project | ||
<em> </em> | <em>gen</em> generate models/data using a descriptive prompt [beta] | ||
<em>y</em> | <em>bind</em> bind application to remote services | ||
<em>m</em> | <em>import</em> add models from external sources | ||
<em>c</em> | <em>compile</em> compile cds models to different outputs | ||
<em>p</em> | <em>parse</em> parses given cds models | ||
<em>s</em> | <em>serve</em> run your services in local server | ||
<em>w</em> | <em>watch</em> run and restart on file changes | ||
<em> </em> | <em>mock</em> call <i>cds serve</i> with mocked service | ||
<em>r</em> | <em>repl</em> read-eval-event loop | ||
<em>e</em> | <em>env</em> inspect effective configuration | ||
<em>b</em> | <em>build</em> prepare for deployment | ||
<em>d</em> | <em>deploy</em> deploy to databases or cloud | ||
<em> </em> | <em>subscribe</em> subscribe a tenant to a multitenant SaaS app | ||
<em> </em> | <em>unsubscribe</em> unsubscribe a tenant from a multitenant SaaS app | ||
<em>l</em> | <em>login</em> login to extensible multitenant SaaS app | ||
<em> </em> | <em>logout</em> logout from extensible multitenant SaaS app | ||
<em> </em> | <em>pull</em> pull base model of extensible SaaS app | ||
<em> </em> | <em>push</em> push extension to extensible SaaS app | ||
<em>t</em> | <em>lint</em> run linter for env or model checks | ||
<em>v</em> | <em>version</em> get detailed version information | ||
<em> </em> | <em>completion</em> add/remove cli completion for cds commands | ||
<em>?</em> | <em>help</em> get detailed usage information | ||
|
||
Learn more about each command using: | ||
<em>cds help</em> <command> or | ||
<em>cds</em> <command> <em>--help</em> | ||
</pre> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<!-- this file is automatically generated and updated by a github action --> | ||
<pre class="log"> | ||
> cds version --markdown | ||
|
||
| your-project | <Add your repository here> | | ||
| ---------------------- | ----------------------------------------------- | | ||
| @cap-js/asyncapi | 1.0.2 | | ||
| @cap-js/cds-types | 0.6.5 | | ||
| @cap-js/db-service | 1.13.0 | | ||
| @cap-js/openapi | 1.0.5 | | ||
| @cap-js/sqlite | 1.7.3 | | ||
| @sap/cds | 8.3.0 | | ||
| @sap/cds-compiler | 5.3.0 | | ||
| @sap/cds-dk (global) | 8.4.0 | | ||
| @sap/cds-fiori | 1.2.7 | | ||
| @sap/cds-foss | 5.0.1 | | ||
| @sap/cds-mtxs | 2.1.1 | | ||
| @sap/eslint-plugin-cds | 3.0.6 | | ||
| Node.js | v22.8.0 | | ||
</pre> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<!-- this file is automatically generated and updated by a github action --> | ||
<pre class="log"> | ||
> cds version | ||
|
||
<em>@cap-js/asyncapi</em>: 1.0.2 | ||
<em>@cap-js/cds-types</em>: 0.6.5 | ||
<em>@cap-js/db-service</em>: 1.13.0 | ||
<em>@cap-js/openapi</em>: 1.0.5 | ||
<em>@cap-js/sqlite</em>: 1.7.3 | ||
<em>@sap/cds</em>: 8.3.0 | ||
<em>@sap/cds-compiler</em>: 5.3.0 | ||
<em>@sap/cds-dk (global)</em>: 8.4.0 | ||
<em>@sap/cds-fiori</em>: 1.2.7 | ||
<em>@sap/cds-foss</em>: 5.0.1 | ||
<em>@sap/cds-mtxs</em>: 2.1.1 | ||
<em>@sap/eslint-plugin-cds</em>: 3.0.6 | ||
<em>Node.js</em>: v22.8.0 | ||
<em>your-project</em>: 1.0.0 | ||
</pre> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
<!-- this file is automatically generated and updated by a github action --> | ||
<pre class="log"> | ||
> cds watch --help | ||
|
||
<strong>SYNOPSIS</strong> | ||
<em>cds watch</em> [<project>] | ||
|
||
Tells cds to watch for relevant things to come or change in the specified | ||
project or the current work directory. Compiles and (re-)runs the server | ||
on every change detected. | ||
|
||
Actually, cds watch is just a convenient shortcut for: | ||
<em>cds serve all --with-mocks --in-memory?</em> | ||
|
||
<strong>OPTIONS</strong> | ||
<em>--port</em> <number> | ||
|
||
Specify the port on which the launched server listens. | ||
If you specify '0', the server picks a random free port. | ||
Alternatively, specify the port using env variable <i>PORT</i>. | ||
|
||
<em>--ext</em> <extensions> | ||
|
||
Specify file extensions to watch for in a comma-separated list. | ||
<em>Example:</em> cds w --ext cds,json,js. | ||
|
||
<em>--livereload</em> <port | false> | ||
|
||
Specify the port for the livereload server. Defaults to '35729'. | ||
Disable it with value <i>false</i>. | ||
|
||
<em>--open</em> <url> | ||
|
||
Open the given URL (suffix) in the browser after starting. | ||
If none is given, the default application URL will be opened. | ||
|
||
<em>--profile</em> <profile,...> | ||
|
||
Specify from which profile(s) the binding information is taken. | ||
<em>Example:</em> cds w --profile hybrid,production | ||
|
||
<strong>SEE ALSO</strong> | ||
<em>cds serve --help</em> for the different start options. | ||
</pre> |
Oops, something went wrong.