feat(scaffolder-backend-module-rails): handle more rails new arguments

Signed-off-by: Christina Chan <6462356+cchawn@users.noreply.github.com>
This commit is contained in:
Christina Chan
2022-12-15 15:52:00 -05:00
parent ce23b273a1
commit 27b23a86ad
4 changed files with 67 additions and 7 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-rails': minor
---
Added more (optional) arguments to the `createFetchRailsAction` to be passed to `rails new`
@@ -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',
@@ -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']],
@@ -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');
}