2
0
Fork 0
mirror of https://github.com/ethauvin/bld.git synced 2025-04-24 15:57:11 -07:00

Unify command line use of create operations

This commit is contained in:
Geert Bevin 2024-12-26 20:06:59 -05:00
parent 32052deaa3
commit 3d86aa8c8d
2 changed files with 17 additions and 49 deletions

View file

@ -390,25 +390,31 @@ public abstract class AbstractCreateOperation<T extends AbstractCreateOperation<
throw new OperationOptionException("ERROR: Expecting the package, project and base names as the arguments.");
}
if (package_name == null || package_name.isEmpty()) {
if (package_name == null || package_name.isBlank()) {
System.out.println("Please enter a package name (for instance: com.example):");
package_name = System.console().readLine();
if (package_name == null || package_name.isEmpty()) {
throw new OperationOptionException("ERROR: package name is required.");
}
} else {
System.out.println("Using package name: " + package_name);
}
if (project_name == null || project_name.isEmpty()) {
if (project_name == null || project_name.isBlank()) {
System.out.println("Please enter a project name (for instance: my-app):");
project_name = System.console().readLine();
if (project_name == null || project_name.isEmpty()) {
throw new OperationOptionException("ERROR: project name is required.");
}
} else {
System.out.println("Using project name: " + project_name);
}
if (base_name == null || base_name.isEmpty()) {
if (base_name == null || base_name.isBlank()) {
var default_base_name = generateBaseName(project_name);
System.out.println("Please enter the base name for generated project classes (default: " + default_base_name + "):");
base_name = System.console().readLine();
if (base_name == null || base_name.trim().isEmpty()) {
if (base_name == null || base_name.isBlank()) {
base_name = default_base_name;
System.out.println("Using base name: " + base_name);
}

View file

@ -7,6 +7,7 @@ package rife.bld.operations;
import rife.bld.operations.exceptions.OperationOptionException;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
@ -37,14 +38,19 @@ public class CreateOperation {
if (!arguments.isEmpty()) {
type = arguments.remove(0);
}
var create_operation_args = new ArrayList<String>();
if (!arguments.isEmpty()) {
package_name = arguments.remove(0);
create_operation_args.add(package_name);
}
if (!arguments.isEmpty()) {
project_name = arguments.remove(0);
create_operation_args.add(project_name);
}
if (!arguments.isEmpty()) {
base_name = arguments.remove(0);
create_operation_args.add(base_name);
}
if ((package_name == null || project_name == null || base_name == null) && System.console() == null) {
throw new OperationOptionException("ERROR: Expecting the package, project and base names as the arguments.");
@ -81,50 +87,6 @@ public class CreateOperation {
throw new OperationOptionException("ERROR: Unsupported project type.");
}
if (package_name == null || package_name.isBlank()) {
System.out.println("Please enter a package name (for instance: com.example):");
package_name = System.console().readLine();
if (package_name == null || package_name.isEmpty()) {
throw new OperationOptionException("ERROR: package name is required.");
}
} else {
System.out.println("Using package name: " + package_name);
}
if (project_name == null || project_name.isBlank()) {
String name_example;
if (LIB.equals(type)) {
name_example = "my-lib";
} else if (RIFE2.equals(type)) {
name_example = "my-webapp";
} else {
name_example = "my-app";
}
System.out.println("Please enter a project name (for instance: " + name_example + ")");
project_name = System.console().readLine();
if (project_name == null || project_name.isEmpty()) {
throw new OperationOptionException("ERROR: project name is required.");
}
} else {
System.out.println("Using project name: " + project_name);
}
if (base_name == null || base_name.isBlank()) {
var default_base_name = AbstractCreateOperation.generateBaseName(project_name);
System.out.println("Please enter the base name for generated project classes (default: " + default_base_name + "):");
base_name = System.console().readLine();
if (base_name == null || base_name.isBlank()) {
base_name = default_base_name;
System.out.println("Using base name: " + base_name);
}
} else {
System.out.println("Using base name: " + base_name);
}
return create_operation.workDirectory(new File(System.getProperty("user.dir")))
.packageName(package_name)
.projectName(project_name)
.baseName(base_name)
.downloadDependencies(true);
return create_operation.fromArguments(create_operation_args);
}
}