id = "spring" name = "Spring" homepage = "https://github.com/rails/spring" description = "Spring is a Rails application preloader that speeds up development by keeping your application running in the background." executables = ["spring"] [dotfiles] # `spring` is also the name of the Spring Boot CLI. That one has no config # file of its own — it reads Maven's ~/.m2/settings.xml to configure Aether # (https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/html/cli-maven-settings.html), # which belongs to the maven entry — so this entry is rails/spring, the Rails # preloader, whose file the Spring Boot CLI simply never creates. # # rails/spring README, "Configuration": "Spring will read ~/.spring.rb and # config/spring.rb for custom settings. Note that ~/.spring.rb is loaded # *before* bundler […] So if you have any spring-commands-* gems installed that # you want to be available in all projects […] require them in your # ~/.spring.rb." config/spring.rb and config/spring_client.rb are per-project # and are not listed. paths = ["~/.spring.rb"] exclude = [] # Ruby that requires spring-commands-* gems and sets Spring.quiet / # Spring.watch_method. Nothing authenticates anything. secret = [] # side_effect is left at its default: the file is loaded when a spring server # boots, and a long-lived server process is exactly what this tool is, so a # rewrite mid-session is not free. # No machine_lines: which command gems to preload and how noisy the server is # are preferences the user wants in every checkout on every machine. [commands] format = 1 label = "Spring Boot CLI" description = "Generate a new Spring Boot project from start.spring.io. Password encoding and the nested shell are left out." quality = "ai-draft" base = "fig:spring" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/spring.ts" license = "MIT" [[commands.subcommand]] path = ["init"] label = "Initialize a project" description = "Download a project from Spring Initializr, optionally extracting it." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/spring.ts" license = "MIT" [[commands.subcommand.field]] id = "location" label = "Location" type = "string" position = 0 description = "Target directory or archive name." sources = ["fig"] [[commands.subcommand.field]] id = "dependencies" label = "Dependencies" type = "string" option = ["--dependencies", "-d"] description = "Dependency identifiers to include, e.g. web, data-jpa." multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "build" label = "Build system" type = "enum" option = ["--build"] description = "Build system to use." choices = [{ value = "maven", label = "maven" }, { value = "gradle", label = "gradle" }] sources = ["fig"] [[commands.subcommand.field]] id = "packaging" label = "Packaging" type = "enum" option = ["--packaging", "-p"] description = "Project packaging." choices = [{ value = "jar", label = "jar" }, { value = "war", label = "war" }] sources = ["fig"] [[commands.subcommand.field]] id = "java_version" label = "Java version" type = "string" option = ["--java-version", "-j"] description = "Language level." sources = ["fig"] [[commands.subcommand.field]] id = "boot_version" label = "Boot version" type = "string" option = ["--boot-version", "-b"] description = "Spring Boot version." sources = ["fig"] [[commands.subcommand.field]] id = "group_id" label = "Group ID" type = "string" option = ["--group-id", "-g"] description = "Project coordinates." sources = ["fig"] [[commands.subcommand.field]] id = "artifact_id" label = "Artifact ID" type = "string" option = ["-a"] description = "Project coordinates." sources = ["fig"] [[commands.subcommand.field]] id = "name" label = "Project name" type = "string" option = ["--name", "-n"] description = "Project name." sources = ["fig"] [[commands.subcommand.field]] id = "package_name" label = "Package name" type = "string" option = ["--package-name"] description = "Package name." sources = ["fig"] [[commands.subcommand.field]] id = "extract" label = "Extract archive" type = "boolean" option = ["--extract", "-x"] description = "Extract the project archive." sources = ["fig"] [[commands.subcommand.field]] id = "force" label = "Overwrite existing files" type = "boolean" option = ["--force", "-f"] description = "Force overwrite of existing files." effect = "overwrite" sources = ["fig"] [[commands.subcommand.field]] id = "list" label = "List capabilities" type = "boolean" option = ["--list"] description = "List the capabilities of the service." sources = ["fig"] [[commands.subcommand.task]] id = "web" label = "New web project" set = { dependencies = ["web"], extract = [true] } fields = ["location", "dependencies", "build", "java_version", "group_id", "artifact_id", "extract"] required = [] [[commands.subcommand.task]] id = "list" label = "List capabilities" set = { list = [true] } fields = ["list"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["location", "dependencies", "build", "java_version", "group_id", "artifact_id", "extract", "list"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["boot_version", "packaging", "name", "package_name", "force"]