springSpec top-level property

FigSpec springSpec
final

Implementation

final FigSpec springSpec = FigSpec(
  name: "spring",
  description:
      "The Spring Boot CLI is a command line tool that you can use to bootstrap a new project from start.spring.io or encode a password",
  icon: "https://start.spring.io/images/icon-48x48.png",
  subcommands: [
    FigSubcommand(
      name: "init",
      description: "Initialize a new project using Spring Initializr",
      options: [
        FigOption(
          name: ["-a", "--artifact-id"],
          description: "Project coordinates",
          args: [FigArg(name: "Name")],
        ),
        FigOption(
          name: ["-b", "--boot-version"],
          description: "Spring Boot version",
          args: [
            FigArg(
              name: "Version",
              generators: [_versionGenerator],
              debounce: true,
            )
          ],
        ),
        FigOption(
          name: "--build",
          description: "Build system to use",
          args: [
            FigArg(
              name: "System",
              suggestions: const [
                FigSuggestion(name: "maven"),
                FigSuggestion(name: "gradle"),
              ],
              defaultValue: "maven",
            )
          ],
        ),
        FigOption(
          name: ["-d", "--dependencies"],
          description:
              "Comma-separated list of dependency identifiers to include in the generated project",
          args: [
            FigArg(
              name: "Dependencies",
              generators: [_dependencyGenerator],
              isVariadic: true,
              debounce: true,
            )
          ],
        ),
        FigOption(
          name: "--description",
          description: "Project description",
          insertValue: "--description '{cursor}'",
          args: [FigArg(name: "description")],
        ),
        FigOption(
          name: ["-f", "--force"],
          description: "Force overwrite of existing files",
          isDangerous: true,
        ),
        FigOption(
          name: "--format",
          description: "Format of the generated content",
          args: [
            FigArg(
              name: "Format",
              suggestions: const [
                FigSuggestion(name: "build"),
                FigSuggestion(name: "project"),
              ],
              defaultValue: "build",
            )
          ],
        ),
        FigOption(
          name: ["-g", "--group-id"],
          description: "Project coordinates",
          args: [FigArg(name: "Group ID")],
        ),
        FigOption(
          name: ["-j", "--java-version"],
          description: "Language level",
          args: [
            FigArg(
              name: "Version",
              generators: [_versionGenerator],
              debounce: true,
            )
          ],
        ),
        FigOption(
          name: "--list",
          description: "List the capabilities of the service",
        ),
        FigOption(
          name: ["-n", "--name"],
          description: "Project name",
          args: [FigArg(name: "name")],
        ),
        FigOption(
          name: ["-p", "--packaging"],
          description: "Project packaging",
          args: [
            FigArg(
              name: "Packaging",
              suggestions: const [
                FigSuggestion(name: "jar"),
                FigSuggestion(name: "war"),
              ],
              defaultValue: "jar",
            )
          ],
        ),
        FigOption(
          name: "--package-name",
          description: "Package name",
          args: [FigArg(name: "package-name")],
        ),
        FigOption(
          name: ["-t", "--type"],
          description: "Project type",
          args: [
            FigArg(
              name: "Type",
              suggestions: const [
                FigSuggestion(
                  name: "gradle-build",
                  description: "Generate a Gradle build file",
                ),
                FigSuggestion(
                  name: "gradle-project",
                  description:
                      "Generate a Gradle based project archive using the Groovy DSL",
                ),
                FigSuggestion(
                  name: "gradle-project-kotlin",
                  description:
                      "Generate a Gradle based project archive using the Kotlin DSL",
                ),
                FigSuggestion(
                  name: "maven-build",
                  description: "Generate a Maven pom.xml",
                ),
                FigSuggestion(
                  name: "maven-project",
                  description: "Generate a Maven based project archive",
                ),
              ],
              defaultValue: "maven-project",
            )
          ],
        ),
        FigOption(
          name: ["-v", "--version"],
          description: "Project version",
          args: [FigArg(name: "version")],
        ),
        FigOption(
          name: ["-x", "--extract"],
          description: "Extract the project archive",
        ),
      ],
    ),
    FigSubcommand(
      name: "encodepassword",
      description: "Encode a password for use with Spring Security",
      options: [
        FigOption(
          name: ["-n", "--iterations"],
          description: "Number of hash iterations",
          args: [FigArg(name: "iterations")],
        ),
        FigOption(
          name: ["-s", "--salt"],
          description: "Salt to use",
          args: [FigArg(name: "salt")],
        ),
      ],
      args: [FigArg(name: "password")],
    ),
    FigSubcommand(
      name: "help",
      description: "Display help about the available commands",
      args: [FigArg(name: "command", isOptional: true)],
    ),
    FigSubcommand(
      name: "version",
      description: "Show the version of the Spring Boot CLI",
    ),
  ],
);