diff --git a/.changeset/strange-colts-sniff.md b/.changeset/strange-colts-sniff.md new file mode 100644 index 0000000000..8d3e90ca7e --- /dev/null +++ b/.changeset/strange-colts-sniff.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-rails': minor +--- + +Added more (optional) arguments to the `createFetchRailsAction` to be passed to `rails new` diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts index d1a9ed7650..49b7ac100b 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts @@ -103,6 +103,31 @@ export function createFetchRailsAction(options: { description: 'Skip test files', type: 'boolean', }, + skipActionCable: { + title: 'skipActionCable', + description: 'Skip Action Cable files', + type: 'boolean', + }, + skipActionMailer: { + title: 'skipActionMailer', + description: 'Skip Action Mailer files', + type: 'boolean', + }, + skipActionMailbox: { + title: 'skipActionMailbox', + description: 'Skip Action Mailbox gem', + type: 'boolean', + }, + skipActiveStorage: { + title: 'skipActiveStorage', + description: 'Skip Active Storage files', + type: 'boolean', + }, + skipActionText: { + title: 'skipActionText', + description: 'Skip Action Text gem', + type: 'boolean', + }, force: { title: 'force', description: 'Overwrite files that already exist', diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts index 1f926eedb0..401ebb295f 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts @@ -28,6 +28,11 @@ describe('railsArgumentResolver', () => { [{ skipBundle: true }, ['--skip-bundle']], [{ skipWebpackInstall: true }, ['--skip-webpack-install']], [{ skipTest: true }, ['--skip-test']], + [{ skipActionCable: true }, ['--skip-action-cable']], + [{ skipActionMailer: true }, ['--skip-action-mailer']], + [{ skipActionMailbox: true }, ['--skip-action-mailbox']], + [{ skipActiveStorage: true }, ['--skip-active-storage']], + [{ skipActionText: true }, ['--skip-action-text']], [{ force: true }, ['--force']], [{ webpacker: 'vue' }, ['--webpack', 'vue']], [{ database: 'postgresql' }, ['--database', 'postgresql']], diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts index 53e1d1f8f6..666eac7958 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts @@ -44,16 +44,21 @@ enum RailsVersion { } export type RailsRunOptions = { - minimal?: boolean; api?: boolean; + database?: Database; + force?: boolean; + minimal?: boolean; + railsVersion?: RailsVersion; + skipActionCable?: boolean; + skipActionMailbox?: boolean; + skipActionMailer?: boolean; + skipActionText?: boolean; + skipActiveStorage?: boolean; + skipBundle?: boolean; + skipTest?: boolean; + skipWebpackInstall?: boolean; template?: string; webpacker?: Webpacker; - database?: Database; - railsVersion?: RailsVersion; - skipBundle?: boolean; - skipWebpackInstall?: boolean; - skipTest?: boolean; - force?: boolean; }; export const railsArgumentResolver = ( @@ -83,6 +88,26 @@ export const railsArgumentResolver = ( argumentsToRun.push('--skip-test'); } + if (options?.skipActionCable) { + argumentsToRun.push('--skip-action-cable'); + } + + if (options?.skipActionMailer) { + argumentsToRun.push('--skip-action-mailer'); + } + + if (options?.skipActionMailbox) { + argumentsToRun.push('--skip-action-mailbox'); + } + + if (options?.skipActiveStorage) { + argumentsToRun.push('--skip-active-storage'); + } + + if (options?.skipActionText) { + argumentsToRun.push('--skip-action-text'); + } + if (options?.force) { argumentsToRun.push('--force'); }