Skip to content

Commit fcc514f

Browse files
committed
Refactor duplicate logic for creating applications inplace - Fixes #9696 and #9654
1 parent fce01a0 commit fcc514f

File tree

1 file changed

+28
-35
lines changed

1 file changed

+28
-35
lines changed

grails-shell/src/main/groovy/org/grails/cli/profile/commands/CreateAppCommand.groovy

Lines changed: 28 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -343,46 +343,24 @@ class CreateAppCommand extends ArgumentCompletingCommand implements ProfileRepos
343343
return false
344344
}
345345
String groupAndAppName = args ? args[0] : null
346-
347-
348-
349346
if(inPlace) {
350347
appname = new File(".").canonicalFile.name
351-
if(groupAndAppName) {
352-
groupname = groupAndAppName
353-
defaultPackage = groupname
354-
}
355-
else {
356-
try {
357-
defaultPackage = createValidPackageName()
358-
} catch (IllegalArgumentException e ) {
359-
GrailsConsole.instance.error(e.message)
360-
return false
361-
}
362-
groupname = defaultPackage
363-
}
364-
}
365-
else {
366348
if(!groupAndAppName) {
367-
GrailsConsole.getInstance().error("Specify an application name or use --inplace to create an application in the current directory")
368-
return false
369-
}
370-
List<String> parts = groupAndAppName.split(/\./) as List
371-
if(parts.size() == 1) {
372-
appname = parts[0]
373-
try {
374-
defaultPackage = createValidPackageName()
375-
} catch (IllegalArgumentException e ) {
376-
GrailsConsole.instance.error(e.message)
377-
return false
378-
}
379-
groupname = defaultPackage
380-
} else {
381-
appname = parts[-1]
382-
groupname = parts[0..-2].join('.')
383-
defaultPackage = groupname
349+
groupAndAppName = appname
384350
}
385351
}
352+
353+
if(!groupAndAppName) {
354+
GrailsConsole.getInstance().error("Specify an application name or use --inplace to create an application in the current directory")
355+
return false
356+
}
357+
358+
try {
359+
defaultPackage = establishGroupAndAppName(groupAndAppName)
360+
} catch (IllegalArgumentException e ) {
361+
GrailsConsole.instance.error(e.message)
362+
return false
363+
}
386364

387365

388366
variables.APPNAME = appname
@@ -400,6 +378,21 @@ class CreateAppCommand extends ArgumentCompletingCommand implements ProfileRepos
400378
variables['grails.app.group'] = groupname
401379
}
402380

381+
private String establishGroupAndAppName(String groupAndAppName) {
382+
String defaultPackage
383+
List<String> parts = groupAndAppName.split(/\./) as List
384+
if (parts.size() == 1) {
385+
appname = parts[0]
386+
defaultPackage = createValidPackageName()
387+
groupname = defaultPackage
388+
} else {
389+
appname = parts[-1]
390+
groupname = parts[0..-2].join('.')
391+
defaultPackage = groupname
392+
}
393+
return defaultPackage
394+
}
395+
403396
private String createValidPackageName() {
404397
String defaultPackage = appname.split(/[-]+/).collect { String token -> (token.toLowerCase().toCharArray().findAll { char ch -> Character.isJavaIdentifierPart(ch) } as char[]) as String }.join('.')
405398
if(!GrailsNameUtils.isValidJavaPackage(defaultPackage)) {

0 commit comments

Comments
 (0)