diff --git a/docs/getting-started/create-an-app.md b/docs/getting-started/create-an-app.md index b69ff1508c..ab5e71ad60 100644 --- a/docs/getting-started/create-an-app.md +++ b/docs/getting-started/create-an-app.md @@ -15,7 +15,7 @@ To create a Backstage app, you will need to have With `npx`: ```bash -npx @backstage/cli create-app +npx @backstage/create-app ``` This will create a new Backstage App inside the current folder. The name of the diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index 206ea25ccd..e3829a65e6 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -107,8 +107,7 @@ async function createApp(appName, isPostgres, workspaceDir, rootDir) { const child = spawnPiped( [ 'node', - resolvePath(workspaceDir, 'packages/cli/bin/backstage-cli'), - 'create-app', + resolvePath(workspaceDir, 'packages/cli/bin/backstage-create-app'), '--skip-install', ], { diff --git a/packages/cli/templates/default-app/plugins/welcome/src/plugin.ts b/packages/cli/templates/default-app/plugins/welcome/src/plugin.ts deleted file mode 100644 index a65fad5348..0000000000 --- a/packages/cli/templates/default-app/plugins/welcome/src/plugin.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { createPlugin } from '@backstage/core'; -import WelcomePage from './components/WelcomePage'; - -export const plugin = createPlugin({ - id: 'welcome', - register({ router }) { - router.registerRoute('/', WelcomePage); - }, -}); diff --git a/packages/create-app/README.md b/packages/create-app/README.md index 09b881e73f..b5f231a326 100644 --- a/packages/create-app/README.md +++ b/packages/create-app/README.md @@ -5,16 +5,10 @@ You can use the flag `--skip-install` to skip the install. ## Installation -Install the package via npm or yarn: +With `npx`: ```sh -$ npm install --save @backstage/create-app -``` - -or - -```sh -$ yarn add @backstage/create-app +$ npx @backstage/create-app ``` ## Documentation diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 9ba2dc76d8..74017fe53d 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "Create app package for Backstage", - "version": "0.1.1", + "version": "0.1.1-alpha.12", "private": false, "publishConfig": { "access": "public" diff --git a/packages/create-app/src/createApp.ts b/packages/create-app/src/createApp.ts index ebdd7583da..b4564b1ff8 100644 --- a/packages/create-app/src/createApp.ts +++ b/packages/create-app/src/createApp.ts @@ -116,7 +116,7 @@ export default async (cmd: Command): Promise => { answers.dbTypePG = answers.dbType === 'PostgreSQL'; answers.dbTypeSqlite = answers.dbType === 'SQLite'; - const templateDir = paths.resolveOwnRoot('packages/cli/templates/default-app'); + const templateDir = paths.resolveOwn('templates/default-app'); const tempDir = resolvePath(os.tmpdir(), answers.name); const appDir = resolvePath(paths.targetDir, answers.name); diff --git a/packages/create-app/src/index.ts b/packages/create-app/src/index.ts index 2c2106bec2..93c10c8c99 100644 --- a/packages/create-app/src/index.ts +++ b/packages/create-app/src/index.ts @@ -18,6 +18,7 @@ import program from 'commander'; import chalk from 'chalk'; import { exitWithError } from './lib/errors'; import { version } from './lib/version'; +import createApp from './createApp'; const main = (argv: string[]) => { program.name('backstage-create-app').version(version); @@ -28,9 +29,7 @@ const main = (argv: string[]) => { '--skip-install', 'Skip the install and builds steps after creating the app', ) - .action( - lazyAction(() => import('./createApp'), 'default'), - ); + .action(createApp) if (!process.argv.slice(2).length) { program.outputHelp(chalk.yellow); @@ -39,25 +38,6 @@ const main = (argv: string[]) => { program.parse(argv); }; -// Wraps an action function so that it always exits and handles errors -function lazyAction( - actionRequireFunc: () => Promise< - { [name in Export]: (...args: T) => Promise } - >, - exportName: Export, -): (...args: T) => Promise { - return async (...args: T) => { - try { - const module = await actionRequireFunc(); - const actionFunc = module[exportName]; - await actionFunc(...args); - process.exit(0); - } catch (error) { - exitWithError(error); - } - }; -} - process.on('unhandledRejection', rejection => { if (rejection instanceof Error) { exitWithError(rejection); diff --git a/packages/cli/templates/default-app/.eslintrc.js b/packages/create-app/templates/default-app/.eslintrc.js similarity index 100% rename from packages/cli/templates/default-app/.eslintrc.js rename to packages/create-app/templates/default-app/.eslintrc.js diff --git a/packages/cli/templates/default-app/README.md b/packages/create-app/templates/default-app/README.md similarity index 100% rename from packages/cli/templates/default-app/README.md rename to packages/create-app/templates/default-app/README.md diff --git a/packages/cli/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml similarity index 100% rename from packages/cli/templates/default-app/app-config.yaml rename to packages/create-app/templates/default-app/app-config.yaml diff --git a/packages/cli/templates/default-app/lerna.json b/packages/create-app/templates/default-app/lerna.json similarity index 100% rename from packages/cli/templates/default-app/lerna.json rename to packages/create-app/templates/default-app/lerna.json diff --git a/packages/cli/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs similarity index 100% rename from packages/cli/templates/default-app/package.json.hbs rename to packages/create-app/templates/default-app/package.json.hbs diff --git a/packages/cli/templates/default-app/packages/app/.eslintrc.js b/packages/create-app/templates/default-app/packages/app/.eslintrc.js similarity index 100% rename from packages/cli/templates/default-app/packages/app/.eslintrc.js rename to packages/create-app/templates/default-app/packages/app/.eslintrc.js diff --git a/packages/cli/templates/default-app/packages/app/cypress.json b/packages/create-app/templates/default-app/packages/app/cypress.json similarity index 100% rename from packages/cli/templates/default-app/packages/app/cypress.json rename to packages/create-app/templates/default-app/packages/app/cypress.json diff --git a/packages/cli/templates/default-app/packages/app/cypress/.eslintrc.json b/packages/create-app/templates/default-app/packages/app/cypress/.eslintrc.json similarity index 100% rename from packages/cli/templates/default-app/packages/app/cypress/.eslintrc.json rename to packages/create-app/templates/default-app/packages/app/cypress/.eslintrc.json diff --git a/packages/cli/templates/default-app/packages/app/cypress/integration/app.js b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js similarity index 100% rename from packages/cli/templates/default-app/packages/app/cypress/integration/app.js rename to packages/create-app/templates/default-app/packages/app/cypress/integration/app.js diff --git a/packages/cli/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs similarity index 100% rename from packages/cli/templates/default-app/packages/app/package.json.hbs rename to packages/create-app/templates/default-app/packages/app/package.json.hbs diff --git a/packages/cli/templates/default-app/packages/app/public/android-chrome-192x192.png b/packages/create-app/templates/default-app/packages/app/public/android-chrome-192x192.png similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/android-chrome-192x192.png rename to packages/create-app/templates/default-app/packages/app/public/android-chrome-192x192.png diff --git a/packages/cli/templates/default-app/packages/app/public/apple-touch-icon.png b/packages/create-app/templates/default-app/packages/app/public/apple-touch-icon.png similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/apple-touch-icon.png rename to packages/create-app/templates/default-app/packages/app/public/apple-touch-icon.png diff --git a/packages/cli/templates/default-app/packages/app/public/favicon-16x16.png b/packages/create-app/templates/default-app/packages/app/public/favicon-16x16.png similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/favicon-16x16.png rename to packages/create-app/templates/default-app/packages/app/public/favicon-16x16.png diff --git a/packages/cli/templates/default-app/packages/app/public/favicon-32x32.png b/packages/create-app/templates/default-app/packages/app/public/favicon-32x32.png similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/favicon-32x32.png rename to packages/create-app/templates/default-app/packages/app/public/favicon-32x32.png diff --git a/packages/cli/templates/default-app/packages/app/public/favicon.ico b/packages/create-app/templates/default-app/packages/app/public/favicon.ico similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/favicon.ico rename to packages/create-app/templates/default-app/packages/app/public/favicon.ico diff --git a/packages/cli/templates/default-app/packages/app/public/index.html b/packages/create-app/templates/default-app/packages/app/public/index.html similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/index.html rename to packages/create-app/templates/default-app/packages/app/public/index.html diff --git a/packages/cli/templates/default-app/packages/app/public/manifest.json b/packages/create-app/templates/default-app/packages/app/public/manifest.json similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/manifest.json rename to packages/create-app/templates/default-app/packages/app/public/manifest.json diff --git a/packages/cli/templates/default-app/packages/app/public/robots.txt b/packages/create-app/templates/default-app/packages/app/public/robots.txt similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/robots.txt rename to packages/create-app/templates/default-app/packages/app/public/robots.txt diff --git a/packages/cli/templates/default-app/packages/app/public/safari-pinned-tab.svg b/packages/create-app/templates/default-app/packages/app/public/safari-pinned-tab.svg similarity index 100% rename from packages/cli/templates/default-app/packages/app/public/safari-pinned-tab.svg rename to packages/create-app/templates/default-app/packages/app/public/safari-pinned-tab.svg diff --git a/packages/cli/templates/default-app/packages/app/src/App.test.tsx b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx similarity index 100% rename from packages/cli/templates/default-app/packages/app/src/App.test.tsx rename to packages/create-app/templates/default-app/packages/app/src/App.test.tsx diff --git a/packages/cli/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx similarity index 100% rename from packages/cli/templates/default-app/packages/app/src/App.tsx rename to packages/create-app/templates/default-app/packages/app/src/App.tsx diff --git a/packages/cli/templates/default-app/packages/app/src/index.tsx b/packages/create-app/templates/default-app/packages/app/src/index.tsx similarity index 100% rename from packages/cli/templates/default-app/packages/app/src/index.tsx rename to packages/create-app/templates/default-app/packages/app/src/index.tsx diff --git a/packages/cli/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts similarity index 100% rename from packages/cli/templates/default-app/packages/app/src/plugins.ts rename to packages/create-app/templates/default-app/packages/app/src/plugins.ts diff --git a/packages/cli/templates/default-app/packages/app/src/setupTests.ts b/packages/create-app/templates/default-app/packages/app/src/setupTests.ts similarity index 100% rename from packages/cli/templates/default-app/packages/app/src/setupTests.ts rename to packages/create-app/templates/default-app/packages/app/src/setupTests.ts diff --git a/packages/cli/templates/default-app/plugins/welcome/.eslintrc.js b/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/.eslintrc.js rename to packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js diff --git a/packages/cli/templates/default-app/plugins/welcome/README.md b/packages/create-app/templates/default-app/plugins/welcome/README.md similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/README.md rename to packages/create-app/templates/default-app/plugins/welcome/README.md diff --git a/packages/cli/templates/default-app/plugins/welcome/dev/index.tsx b/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/dev/index.tsx rename to packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx diff --git a/packages/cli/templates/default-app/plugins/welcome/package.json.hbs b/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/package.json.hbs rename to packages/create-app/templates/default-app/plugins/welcome/package.json.hbs diff --git a/packages/cli/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx rename to packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx diff --git a/packages/cli/templates/default-app/plugins/welcome/src/components/Timer/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/components/Timer/index.ts rename to packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts diff --git a/packages/cli/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx rename to packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx diff --git a/packages/cli/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx rename to packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx diff --git a/packages/cli/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts rename to packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts diff --git a/packages/cli/templates/default-app/plugins/welcome/src/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/index.ts similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/index.ts rename to packages/create-app/templates/default-app/plugins/welcome/src/index.ts diff --git a/packages/cli/templates/default-app/plugins/welcome/src/plugin.test.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/plugin.test.ts rename to packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts new file mode 100644 index 0000000000..3121e982b7 --- /dev/null +++ b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts @@ -0,0 +1,24 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createPlugin } from '@backstage/core'; +import WelcomePage from './components/WelcomePage'; + +export const plugin = createPlugin({ + id: 'welcome', + register({ router }) { + router.registerRoute('/', WelcomePage); + }, +}); diff --git a/packages/cli/templates/default-app/plugins/welcome/src/setupTests.ts b/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts similarity index 100% rename from packages/cli/templates/default-app/plugins/welcome/src/setupTests.ts rename to packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts diff --git a/packages/cli/templates/default-app/tsconfig.json b/packages/create-app/templates/default-app/tsconfig.json similarity index 100% rename from packages/cli/templates/default-app/tsconfig.json rename to packages/create-app/templates/default-app/tsconfig.json diff --git a/packages/create-app/templates/serve_index.html b/packages/create-app/templates/serve_index.html new file mode 100644 index 0000000000..d7aebb7f4b --- /dev/null +++ b/packages/create-app/templates/serve_index.html @@ -0,0 +1,27 @@ + + + + + + + + Backstage + + + +
+ + +