From 4ebc9fd277fad6f14ada6d2570d2cdbf017778e6 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 20 Oct 2021 14:12:02 +0200 Subject: [PATCH] Create .backstage-version file Signed-off-by: Vincenzo Scamporlino --- .changeset/healthy-kids-mate.md | 7 +++++++ packages/create-app/src/createApp.ts | 6 +++--- packages/create-app/src/index.ts | 2 +- packages/create-app/src/lib/tasks.ts | 7 ++++++- 4 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 .changeset/healthy-kids-mate.md diff --git a/.changeset/healthy-kids-mate.md b/.changeset/healthy-kids-mate.md new file mode 100644 index 0000000000..b9acfc24b0 --- /dev/null +++ b/.changeset/healthy-kids-mate.md @@ -0,0 +1,7 @@ +--- +'@backstage/create-app': patch +--- + +Add .bsversion file + +`@backstage/create-app` will create a new `.bsversion` file containing the version of `@backstage/create-app` that has been used for creating the application. diff --git a/packages/create-app/src/createApp.ts b/packages/create-app/src/createApp.ts index 8823e6c858..d301792380 100644 --- a/packages/create-app/src/createApp.ts +++ b/packages/create-app/src/createApp.ts @@ -30,7 +30,7 @@ import { templatingTask, } from './lib/tasks'; -export default async (cmd: Command): Promise => { +export default async (cmd: Command, version: string): Promise => { /* eslint-disable-next-line no-restricted-syntax */ const paths = findPaths(__dirname); @@ -82,7 +82,7 @@ export default async (cmd: Command): Promise => { await checkPathExistsTask(appDir); Task.section('Preparing files'); - await templatingTask(templateDir, cmd.path, answers); + await templatingTask(templateDir, cmd.path, answers, version); } else { // Template to temporary location, and then move files @@ -93,7 +93,7 @@ export default async (cmd: Command): Promise => { await createTemporaryAppFolderTask(tempDir); Task.section('Preparing files'); - await templatingTask(templateDir, tempDir, answers); + await templatingTask(templateDir, tempDir, answers, version); Task.section('Moving to final location'); await moveAppTask(tempDir, appDir, answers.name); diff --git a/packages/create-app/src/index.ts b/packages/create-app/src/index.ts index 1f37be56d2..8a2da2fad8 100644 --- a/packages/create-app/src/index.ts +++ b/packages/create-app/src/index.ts @@ -38,7 +38,7 @@ const main = (argv: string[]) => { '--skip-install', 'Skip the install and builds steps after creating the app', ) - .action(createApp); + .action(cmd => createApp(cmd, version)); program.parse(argv); }; diff --git a/packages/create-app/src/lib/tasks.ts b/packages/create-app/src/lib/tasks.ts index 0b3ca63728..aefff2c9ee 100644 --- a/packages/create-app/src/lib/tasks.ts +++ b/packages/create-app/src/lib/tasks.ts @@ -19,7 +19,7 @@ import fs from 'fs-extra'; import handlebars from 'handlebars'; import ora from 'ora'; import recursive from 'recursive-readdir'; -import { basename, dirname, resolve as resolvePath } from 'path'; +import { basename, dirname, join, resolve as resolvePath } from 'path'; import { exec as execCb } from 'child_process'; import { packageVersions } from './versions'; import { promisify } from 'util'; @@ -79,6 +79,7 @@ export async function templatingTask( templateDir: string, destinationDir: string, context: any, + version: string, ) { const files = await recursive(templateDir).catch(error => { throw new Error(`Failed to read template directory: ${error.message}`); @@ -125,6 +126,10 @@ export async function templatingTask( }); } } + const bsVersionFileName = '.bsversion'; + await Task.forItem('creating', bsVersionFileName, () => + fs.writeFile(join(destinationDir, bsVersionFileName), version), + ); } /**