From 3eff97cc64b034d811dfe384df8391e814baf38c Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Sun, 22 Sep 2024 20:33:22 -0300 Subject: [PATCH 1/3] cli: add implies to cli options --- cli/jhipster-command.mjs | 3 +++ lib/command/types.d.ts | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cli/jhipster-command.mjs b/cli/jhipster-command.mjs index fabdf24c302..57e9ddeeeb2 100644 --- a/cli/jhipster-command.mjs +++ b/cli/jhipster-command.mjs @@ -225,6 +225,9 @@ export default class JHipsterCommand extends Command { if (optionDefinition.choices && optionDefinition.choices.length > 0) { option.choices(optionDefinition.choices); } + if (optionDefinition.implies) { + option.implies(optionDefinition.implies); + } return this.addOption(option); } } diff --git a/lib/command/types.d.ts b/lib/command/types.d.ts index 5fa012ff2a6..77950a956f9 100644 --- a/lib/command/types.d.ts +++ b/lib/command/types.d.ts @@ -31,11 +31,18 @@ export type PromptSpec = { type JHipsterArgumentConfig = SetOptional & { scope?: CommandConfigScope }; +type CliSpec = SetOptional & { + env?: string; + /** + * Imply other options. + */ + implies?: Record; +}; + export type ConfigSpec = { readonly description?: string; readonly choices?: JHispterChoices; - - readonly cli?: SetOptional & { env?: string }; + readonly cli?: CliSpec; readonly argument?: JHipsterArgumentConfig; readonly prompt?: | PromptSpec From cb7d452c7a977bf390bdfd9e6041bcec456ea710 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Sun, 22 Sep 2024 20:34:54 -0300 Subject: [PATCH 2/3] git: add --commit-msg option --- .../app/__snapshots__/generator.spec.ts.snap | 1 + generators/git/command.ts | 10 ++++++++++ generators/git/generator.ts | 17 ++++++++++------- .../jdl/__snapshots__/generator.spec.ts.snap | 1 + 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/generators/app/__snapshots__/generator.spec.ts.snap b/generators/app/__snapshots__/generator.spec.ts.snap index 39149896843..aa4c41b7f4a 100644 --- a/generators/app/__snapshots__/generator.spec.ts.snap +++ b/generators/app/__snapshots__/generator.spec.ts.snap @@ -65,6 +65,7 @@ Options: --client-root-dir Client root --skip-git Skip git repository initialization --force-git Force commit to git repository + --commit-msg Commit changes (implies forceGit) --cypress-coverage Enable Cypress code coverage report generation --cypress-audit Enable cypress-audit/lighthouse report generation --enable-translation Enable translation diff --git a/generators/git/command.ts b/generators/git/command.ts index 78fd48ef5b8..bd6c9078c74 100644 --- a/generators/git/command.ts +++ b/generators/git/command.ts @@ -34,6 +34,16 @@ const command = { }, scope: 'generator', }, + commitMsg: { + description: 'Commit changes (implies forceGit)', + cli: { + type: String, + implies: { + forceGit: true, + }, + }, + scope: 'generator', + }, monorepository: { description: 'Use monorepository', cli: { diff --git a/generators/git/generator.ts b/generators/git/generator.ts index a1445d66b43..274c36a28a5 100644 --- a/generators/git/generator.ts +++ b/generators/git/generator.ts @@ -28,10 +28,11 @@ import { files } from './files.js'; * @extends {BaseGenerator} */ export default class GitGenerator extends BaseGenerator { - gitInitialized; - skipGit; - forceGit; - existingRepository; + gitInitialized!: boolean; + skipGit!: boolean; + forceGit!: boolean; + existingRepository!: boolean; + commitMsg!: string; async beforeQueue() { if (!this.fromBlueprint) { @@ -134,9 +135,11 @@ export default class GitGenerator extends BaseGenerator { } } try { - let commitMsg = existingApplication - ? `Regenerated ${this.jhipsterConfig.baseName} using generator-jhipster@${this.jhipsterConfig.jhipsterVersion}` - : `Initial version of ${this.jhipsterConfig.baseName} generated by generator-jhipster@${this.jhipsterConfig.jhipsterVersion}`; + let commitMsg = + this.commitMsg ?? + (existingApplication + ? `Regenerated ${this.jhipsterConfig.baseName} using generator-jhipster@${this.jhipsterConfig.jhipsterVersion}` + : `Initial version of ${this.jhipsterConfig.baseName} generated by generator-jhipster@${this.jhipsterConfig.jhipsterVersion}`); if (this.jhipsterConfig.blueprints && this.jhipsterConfig.blueprints.length > 0) { const bpInfo = this.jhipsterConfig.blueprints.map(bp => `${bp.name}@${bp.version}`).join(', '); commitMsg += ` with blueprints ${bpInfo}`; diff --git a/generators/jdl/__snapshots__/generator.spec.ts.snap b/generators/jdl/__snapshots__/generator.spec.ts.snap index fde5cf09779..8fb64cbfa89 100644 --- a/generators/jdl/__snapshots__/generator.spec.ts.snap +++ b/generators/jdl/__snapshots__/generator.spec.ts.snap @@ -174,6 +174,7 @@ Options: --workspaces Generate workspaces for multiples applications --skip-git Skip git repository initialization --force-git Force commit to git repository + --commit-msg Commit changes (implies forceGit) --monorepository Use monorepository --defaults Execute jhipster with default config --skip-client Skip the client-side application generation From 0d4c397e6754a9a95d61a69035c6e1fadae6bd90 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Sun, 22 Sep 2024 20:35:54 -0300 Subject: [PATCH 3/3] init: import git command --- generators/init/__snapshots__/generator.spec.ts.snap | 5 ++++- generators/init/command.ts | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/generators/init/__snapshots__/generator.spec.ts.snap b/generators/init/__snapshots__/generator.spec.ts.snap index 18b0abd3ff7..207df51de56 100644 --- a/generators/init/__snapshots__/generator.spec.ts.snap +++ b/generators/init/__snapshots__/generator.spec.ts.snap @@ -11,9 +11,12 @@ Options: --skip-install Do not automatically install dependencies (default: false) --force-install Fail on install dependencies error (default: false) --ask-answered Show prompts for already configured options (default: false) + --skip-git Skip git repository initialization + --force-git Force commit to git repository + --commit-msg Commit changes (implies forceGit) + --monorepository Use monorepository --base-name Application base name --prettier-tab-width Default tab width for prettier - --monorepository Use monorepository --skip-commit-hook Skip adding husky commit hooks -h, --help display help for command " diff --git a/generators/init/command.ts b/generators/init/command.ts index 559f8c4ecc4..8935ece74f6 100644 --- a/generators/init/command.ts +++ b/generators/init/command.ts @@ -19,9 +19,9 @@ import type { JHipsterCommandDefinition } from '../../lib/command/index.js'; import { GENERATOR_PROJECT_NAME } from '../generator-list.js'; -const command: JHipsterCommandDefinition = { +const command = { options: {}, - import: [GENERATOR_PROJECT_NAME, 'jhipster:javascript:prettier', 'jhipster:javascript:husky'], -}; + import: ['jhipster:git', GENERATOR_PROJECT_NAME, 'jhipster:javascript:prettier', 'jhipster:javascript:husky'], +} as const satisfies JHipsterCommandDefinition; export default command;