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);