grails / grails-forge

This is Grails project creator. Grails projects may be created using the browser interface, Command Line, or via CURL.
Apache License 2.0
3 stars 8 forks source link

Command line option --inplace does not work #321

Open matrei opened 6 months ago

matrei commented 6 months ago

Steps to Reproduce

$ grails -V
Grails Version: 6.1.2
JVM Version: 11.0.16
$ mkdir myapp
$ cd myapp
$ grails create-app --inplace
Specify an application name or use --inplace to create an application in the current directory
Usage: grails create-app [-hivVx] [--list-features] [-g=GORM Implementation] [--jdk=<javaVersion>]
                         [-s=Servlet Implementation] [-t=TEST] [-f=FEATURE[,FEATURE...]]... [NAME]
Creates an application
      [NAME]            The name of the application to create.
  -f, --features=FEATURE[,FEATURE...]
                        The features to use. Possible values: asciidoctor, mockito, assertj,
                          testcontainers, spring-boot-starter-tomcat, cache-ehcache,
                          gorm-hibernate5, scaffolding, database-migration, mysql, cache, h2,
                          grails-gsp, spring-boot-devtools, grails-console, mongo-sync,
                          logbackGroovy, gorm-neo4j, micronaut-http-client,
                          spring-boot-starter-jetty, sqlserver, hamcrest, jrebel, embedded-mongodb,
                          asset-pipeline-grails, spring-boot-starter-undertow, views-markup,
                          micronaut-inject-groovy, gorm-mongodb, hibernate-validator, postgres,
                          grails-web-console, views-json, github-workflow-java-ci, shade, geb,
                          properties
  -g, --gorm=GORM Implementation
                        Which GORM Implementation to configure. Possible values: hibernate,
                          mongodb, neo4j.
  -h, --help            Show this help message and exit.
  -i, --inplace         Create a service using the current directory
      --jdk, --java-version=<javaVersion>
                        The JDK version the project should target
      --list-features   Output the available features and their descriptions
  -s, --servlet=Servlet Implementation
                        Which Servlet Implementation to configure. Possible values: none, tomcat,
                          jetty, undertow.
  -t, --test=TEST       Which test framework to use. Possible values: junit, spock.
  -v, --verbose         Create verbose output.
  -V, --version         Print version information and exit.
  -x, --stacktrace      Show full stack trace when exceptions occur.

Expected Behaviour

An application to be created in the myapp directory.

Actual Behaviour

The above info message is shown.

Environment Information

matrei commented 6 months ago

If you specify an application name together with the --inplace option, it actually creates an application in the current directory.

However, this is not consistent with Grails CLI --inplace functionality of earlier versions of Grails where it used the current directory name as application name and default package.

Also, if it is required to provide an application name together with the --inplace option in Grails 6, the info message from the CLI is misleading: Specify an application name or use --inplace to create an application in the current directory