You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ch...@apache.org on 2019/12/23 06:00:12 UTC
[servicecomb-toolkit] 03/04: [SCB-1663] determine script name based
on system property
This is an automated email from the ASF dual-hosted git repository.
chanjarster pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-toolkit.git
commit 0c420e6e418756d68701d1e5f62aa03a8ad5e1b6
Author: kakulisen <18...@163.com>
AuthorDate: Fri Dec 13 15:35:19 2019 +0800
[SCB-1663] determine script name based on system property
Signed-off-by: kakulisen <18...@163.com>
---
README-ZH.md | 11 +++++++++--
README.md | 8 ++++++--
cli/scripts/cli.cmd | 2 +-
cli/scripts/cli.sh | 2 +-
.../java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java | 11 ++++++++++-
5 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/README-ZH.md b/README-ZH.md
index 1dcd770..f61eee0 100644
--- a/README-ZH.md
+++ b/README-ZH.md
@@ -234,8 +234,15 @@ mvn toolkit:verify
### 3.3 使用toolkit cli工具
-* 如果你使用的是正式发布版本(>=0.2.0),可以在解压二进制包后直接使用cli.sh
-* 如果你是通过源码构建,可以将`cli/scripts/cli.sh`与`cli/target/bin/toolkit-cli-{version}.jar`放置在同一目录,然后使用cli.sh
+
+#### 3.3.0 获取
+* 如果你使用的是正式发布版本(>=0.2.0),可以在解压二进制包后直接使用里面的脚本文件
+ * 在Linux及Mac环境,请使用cli.sh
+ * 在Windows环境,请使用cli.cmd
+
+* 如果你是通过源码构建,可以将`cli/scripts/cli.*`与`cli/target/bin/toolkit-cli-{version}.jar`放置在同一目录,然后根据不同环境选择不同脚本
+
+以下所有示例均通过Linux环境的cli.sh进行介绍
```shell
$ ./cli.sh help
```
diff --git a/README.md b/README.md
index 55123d7..015129a 100644
--- a/README.md
+++ b/README.md
@@ -229,8 +229,12 @@ mvn toolkit:verify
### 3.3 Use the toolkit cli
-* If you are using the official release version ( >=0.2.0 ), you can use cli.sh directly after decompressing the binary package
-* If you are building from source, you can put `cli/scripts/cli.sh` in the same directory as`cli/target/bin/toolkit-cli-{version}.jar` and then use cli.sh
+* If you are using the official release version ( >=0.2.0 ), you can use the script files directly after decompressing the binary package
+ * In Linux and Mac environment, please use cli.sh
+ * In the Windows environment, please use cli.cmd
+* If you are building from source, you can put `cli/scripts/cli.*` in the same directory as`cli/target/bin/toolkit-cli-{version}.jar` and then choose different scripts according to different environments
+
+All the examples below are introduced through cli.sh for Linux environment
```shell
$ ./cli.sh help
```
diff --git a/cli/scripts/cli.cmd b/cli/scripts/cli.cmd
index 0e07d35..5d7e25c 100644
--- a/cli/scripts/cli.cmd
+++ b/cli/scripts/cli.cmd
@@ -55,7 +55,7 @@ if "%allparam:~-1%"==" " set "allparam=%allparam:~0,-1%"&goto intercept_right
:eof
-java -jar %jarFile% %allparam%
+java -Dscript.name="cli.cmd" -jar %jarFile% %allparam%
exit /B %SUCCESS_CODE%
:JAVA_HOME_ERROR
diff --git a/cli/scripts/cli.sh b/cli/scripts/cli.sh
index 81752d1..cdc22c8 100755
--- a/cli/scripts/cli.sh
+++ b/cli/scripts/cli.sh
@@ -47,4 +47,4 @@ if [[ ! -f ${jarFile} ]]; then
exit 1
fi
-java -jar ${jarFile} $*
+java -Dscript.name="cli.sh" -jar ${jarFile} $*
diff --git a/cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java b/cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
index ac3ac01..851289d 100755
--- a/cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
+++ b/cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
@@ -21,6 +21,8 @@ import java.io.IOException;
import java.util.Optional;
import java.util.Properties;
+import org.apache.commons.lang3.StringUtils;
+
import io.airlift.airline.Cli;
import io.airlift.airline.Help;
@@ -33,7 +35,14 @@ public class ToolkitMain {
initialProjectVersion();
- Cli.CliBuilder<Runnable> builder = Cli.<Runnable>builder("cli.sh");
+ String scriptName = System.getProperty("script.name");
+ Cli.CliBuilder<Runnable> builder = null;
+ if (StringUtils.isNotEmpty(scriptName)) {
+ builder = Cli.builder(scriptName);
+ } else {
+ builder = Cli.builder("java -jar toolkit-cli-" + projectVersion + ".jar");
+ }
+
builder.withDescription("Microservice development toolkit(version " + projectVersion
+ "). ");
builder.withDefaultCommand(Help.class);