message: Update scaffolder installation instructions
diff: @@ -33,7 +33,28 @@ it doesn't.
  Add the following entry to the head of your `packages/app/src/plugins.ts`:
  ```ts
  -export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder';
  +export { scaffolderPlugin } from '@backstage/plugin-scaffolder';
  +```
  +
  +Next we need to install the three pages that the scaffolder plugin provides. You
  +can choose any name for these routes, but we recommend the following:
  +
  +```tsx
  +import { TemplateIndexPage, TemplatePage, TaskPage } from '@backstage/plugin-scaffolder';
  +
  +// Add to the top-level routes, directly within <FlatRoutes>
  +<Route path="/create" element={<TemplateIndexPage />} />
  +<Route path="/create/templates/:templateName" element={<TemplatePage />} />
  +<Route path="/create/tasks/:taskId" element={<TaskPage />} />
  +```
  +
  +You may also want to add a link to the template index page to your sidebar:
  +
  +```tsx
  +import CreateComponentIcon from '@material-ui/icons/AddCircleOutline';
  +
  +// Somewhere within the <Sidebar>
  +<SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />;
  ```
  This is all that is needed for the frontend part of the Scaffolder plugin to
  @@ -66,29 +87,26 @@ following contents to get you up and running quickly.
  import {
  CookieCutter,
  createRouter,
  - FilePreparer,
  - GithubPreparer,
  - GitlabPreparer,
  Preparers,
  Publishers,
  - GithubPublisher,
  - GitlabPublisher,
  CreateReactAppTemplater,
  Templaters,
  - RepoVisibilityOptions,
  + CatalogEntityClient,
  } from '@backstage/plugin-scaffolder-backend';
  -import { Octokit } from '@octokit/rest';
  -import { Gitlab } from '@gitbeaker/node';
  +import { SingleHostDiscovery } from '@backstage/backend-common';
  import type { PluginEnvironment } from '../types';
  import Docker from 'dockerode';
  +import { CatalogClient } from '@backstage/catalog-client';
  export default async function createPlugin({
  logger,
  config,
  + database,
  }: PluginEnvironment) {
  const cookiecutterTemplater = new CookieCutter();
  const craTemplater = new CreateReactAppTemplater();
  const templaters = new Templaters();
  +
  templaters.register('cookiecutter', cookiecutterTemplater);
  templaters.register('cra', craTemplater);
  @@ -96,12 +114,21 @@ export default async function createPlugin({
  const publishers = await Publishers.fromConfig(config, { logger });
  const dockerClient = new Docker();
  +
  + const discovery = SingleHostDiscovery.fromConfig(config);
  + const entityClient = new CatalogEntityClient({ discovery });
  + const catalogClient = new CatalogClient({ discoveryApi: discovery });
  +
  return await createRouter({
  preparers,
  templaters,
  publishers,
  logger,
  + config,
  dockerClient,
  + entityClient,
  + database,
  + catalogClient,
  });
  }
  ```
  