From edeeb773c196d364276e331f0b19bc4df3ecf714 Mon Sep 17 00:00:00 2001 From: Charuka Tharindu Date: Wed, 15 Dec 2021 11:07:02 +0530 Subject: [PATCH 1/2] Add distribution availability check --- .../ballerinalang/command/cmd/UseCommand.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/ballerinalang/command/cmd/UseCommand.java b/src/main/java/org/ballerinalang/command/cmd/UseCommand.java index 8b7db7dd..36ea0446 100644 --- a/src/main/java/org/ballerinalang/command/cmd/UseCommand.java +++ b/src/main/java/org/ballerinalang/command/cmd/UseCommand.java @@ -17,6 +17,8 @@ package org.ballerinalang.command.cmd; import org.ballerinalang.command.BallerinaCliCommands; +import org.ballerinalang.command.util.Channel; +import org.ballerinalang.command.util.Distribution; import org.ballerinalang.command.util.ErrorUtil; import org.ballerinalang.command.util.ToolUtil; import picocli.CommandLine; @@ -68,8 +70,23 @@ public void execute() { return; } printStream.println("Distribution '" + distribution + "' not found"); - printStream.println("Run 'bal dist pull " + distribution + "' to fetch and set the distribution as the " + - "active distribution"); + + List channels = ToolUtil.getDistributions(printStream); + boolean validDistribution = false; + for (Channel channel : channels) { + for (Distribution dist : channel.getDistributions()) { + if (distribution.equals(dist.getVersion()) ) { + validDistribution = true; + printStream.println("Run 'bal dist pull " + distribution + "' to fetch and set the distribution " + + "as the active distribution"); + break; + } + } + } + if (!validDistribution){ + printStream.println( "'" + distribution + "' is not a valid distribution. Use 'bal dist list -a' for the " + + "available distributions list"); + } } @Override From b4efb4020d6959f1c3bc33a72f51d846ecb42e2d Mon Sep 17 00:00:00 2001 From: Charuka Tharindu Date: Mon, 20 Dec 2021 11:10:28 +0530 Subject: [PATCH 2/2] Add test case for invalid distribution --- src/test/java/org/ballerinalang/command/UseCommandTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/org/ballerinalang/command/UseCommandTest.java b/src/test/java/org/ballerinalang/command/UseCommandTest.java index 77309ef4..668e09f5 100644 --- a/src/test/java/org/ballerinalang/command/UseCommandTest.java +++ b/src/test/java/org/ballerinalang/command/UseCommandTest.java @@ -54,6 +54,11 @@ public void useCommandTest() { new CommandLine(useCmd).parse("slp3"); useCmd.execute(); Assert.assertTrue(outContent.toString().contains("not found")); + + UseCommand useCommandInvalidDist = new UseCommand(testStream); + new CommandLine(useCommandInvalidDist).parse("slbeta7"); + useCommandInvalidDist.execute(); + Assert.assertTrue(outContent.toString().contains("not a valid distribution")); } @Test