diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/BuildCommand.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/BuildCommand.java index 3913a0220103..db59515cf233 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/BuildCommand.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/BuildCommand.java @@ -304,6 +304,13 @@ public void execute() { .build(); taskExecutor.executeTasks(project); + Path targetDirPath = project.sourceRoot().resolve("target"); + String packageName = project.sourceRoot().getFileName().toString(); + String jarFileName = packageName+".jar"; + Path jarFilePath = targetDirPath.resolve("bin").resolve(jarFileName); + outStream.println("What's next?"); + outStream.println("Execute java -jar " + jarFilePath.toString() + " to run the program"); + if (this.exitWhenFinish) { Runtime.getRuntime().exit(0); } diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/NewCommand.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/NewCommand.java index 37a396eb1625..5216d8950c82 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/NewCommand.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/NewCommand.java @@ -305,6 +305,31 @@ public void execute() { packagePath = Paths.get(argList.get(0)); } errStream.println("Created new package '" + packageName + "' at " + packagePath + "."); + errStream.println("What's next"); + switch (template) { + case "main": + errStream.println("Execute the below command to build the executable JAR file:"); + errStream.println("\t bal build " + packageName); + break; + + case "service": + errStream.println("Execute the below command to run the service:"); + errStream.println("\t bal run " + packageName); + errStream.println("Else, execute the below command to build the executable JAR file:"); + errStream.println("\t bal build " + packageName); + break; + + case "lib": + errStream.println("Execute the below command to create the Ballerina archive:"); + errStream.println("\t bal pack " + packageName); + break; + + default: + errStream.println("Execute the below command to run the program:"); + errStream.println("\t bal run " + packageName); + + break; + } } if (this.exitWhenFinish) { Runtime.getRuntime().exit(0); diff --git a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PackCommand.java b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PackCommand.java index 3de702bc97ac..9e3fd2664f4b 100644 --- a/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PackCommand.java +++ b/cli/ballerina-cli/src/main/java/io/ballerina/cli/cmd/PackCommand.java @@ -174,6 +174,7 @@ public void execute() { } } catch (ProjectException e) { CommandUtil.printError(this.errStream, e.getMessage(), null, false); + CommandUtil.exitError(this.exitWhenFinish); return; } @@ -265,6 +266,10 @@ public void execute() { .addTask(new DumpBuildTimeTask(outStream), !project.buildOptions().dumpBuildTime()) .build(); + outStream.println("What's Next"); + outStream.println("Execute the below command to publish the package to Ballerina Central."); + outStream.println("\t bal push "); + taskExecutor.executeTasks(project); if (this.exitWhenFinish) { Runtime.getRuntime().exit(0); diff --git a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java index 4b629d382738..95dc58032a7e 100644 --- a/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java +++ b/cli/ballerina-cli/src/test/java/io/ballerina/cli/cmd/NewCommandTest.java @@ -198,6 +198,11 @@ public void testNewCommandInExistingDirectory() throws IOException { """; Assert.assertEquals(gitignoreContent.trim(), expectedGitignoreContent.trim()); Assert.assertTrue(readOutput().contains("Created new package")); + Assert.assertTrue(output.contains("What's next")); + Assert.assertTrue(output.contains("Execute the below command to run the program:")); + Assert.assertTrue(output.contains("\t bal run " + name)); + Assert.assertTrue(output.contains("Else, execute the below command to build the executable JAR file:")); + Assert.assertTrue(output.contains("\t bal build " + name)); Assert.assertTrue(Files.exists(packageDir.resolve(".devcontainer.json"))); String devcontainerContent = Files.readString(packageDir.resolve(".devcontainer.json"));