Skip to content

Commit 3916b2e

Browse files
committed
use cli blob
1 parent 2d023a8 commit 3916b2e

File tree

6 files changed

+323
-276
lines changed

6 files changed

+323
-276
lines changed

main/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929
"github.com/aliyun/aliyun-cli/v3/openapi"
3030
"github.com/aliyun/aliyun-cli/v3/oss/lib"
3131
"github.com/aliyun/aliyun-cli/v3/ossutil"
32-
"github.com/aliyun/aliyun-cli/v3/ots"
32+
"github.com/aliyun/aliyun-cli/v3/otsutil"
3333
)
3434

3535
func Main(args []string) {
@@ -81,7 +81,7 @@ func Main(args []string) {
8181
// new oss command
8282
rootCmd.AddSubCommand(ossutil.NewOssutilCommand())
8383
// tablestore command
84-
rootCmd.AddSubCommand(ots.NewOtsCommand())
84+
rootCmd.AddSubCommand(otsutil.NewOtsutilCommand())
8585
if os.Getenv("GENERATE_METADATA") == "YES" {
8686
generateMetadata(rootCmd)
8787
} else {

ots/main.go

Lines changed: 0 additions & 24 deletions
This file was deleted.

otsutil/main.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package otsutil
2+
3+
import (
4+
"github.com/aliyun/aliyun-cli/v3/cli"
5+
"github.com/aliyun/aliyun-cli/v3/i18n"
6+
)
7+
8+
func NewOtsutilCommand() *cli.Command {
9+
return &cli.Command{
10+
Name: "otsutil",
11+
Short: i18n.T("Alibaba Cloud Tablestore Utility", "阿里云表格存储工具"),
12+
Usage: "aliyun otsutil <command> [args...]",
13+
Hidden: false,
14+
Run: func(ctx *cli.Context, args []string) error {
15+
if ctx.IsHelp() {
16+
hasHelp := false
17+
for i, arg := range args {
18+
if arg == "help" {
19+
hasHelp = true
20+
break
21+
} else if arg == "--help" {
22+
// 将 --help 替换为 help
23+
args[i] = "help"
24+
hasHelp = true
25+
break
26+
}
27+
}
28+
// 如果没有找到 help 相关参数,说明是被过滤掉的 "help" 参数
29+
if !hasHelp {
30+
args = append(args, "help")
31+
}
32+
}
33+
// fmt.Println("otsutil args", args)
34+
options := NewContext(ctx)
35+
return options.Run(args)
36+
},
37+
// allow unknown args
38+
EnableUnknownFlag: true,
39+
KeepArgs: true,
40+
SkipDefaultHelp: true, // DO NOT use default help and version
41+
}
42+
}

ots/main_test.go renamed to otsutil/main_test.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ots
1+
package otsutil
22

33
import (
44
"bytes"
@@ -10,24 +10,24 @@ import (
1010
)
1111

1212
func TestNewOtsCommand(t *testing.T) {
13-
cmd := NewOtsCommand()
13+
cmd := NewOtsutilCommand()
1414
if cmd == nil {
15-
t.Fatalf("NewOtsCommand returned nil")
15+
t.Fatalf("NewOtsutilCommand returned nil")
1616
}
17-
if cmd.Name != "ots" {
18-
t.Errorf("Name expected 'ots', got %s", cmd.Name)
17+
if cmd.Name != "otsutil" {
18+
t.Errorf("Name expected 'otsutil', got %s", cmd.Name)
1919
}
2020
if cmd.Short == nil {
2121
t.Fatalf("Short i18n text nil")
2222
}
23-
if en := cmd.Short.Get("en"); en != "Alibaba Cloud Tablestore CLI" {
24-
t.Errorf("Short en expected 'Alibaba Cloud Tablestore CLI', got %s", en)
23+
if en := cmd.Short.Get("en"); en != "Alibaba Cloud Tablestore Utility" {
24+
t.Errorf("Short en expected 'Alibaba Cloud Tablestore Utility', got %s", en)
2525
}
26-
if zh := cmd.Short.Get("zh"); zh != "阿里云表格存储CLI工具" {
27-
t.Errorf("Short zh expected '阿里云表格存储CLI工具', got %s", zh)
26+
if zh := cmd.Short.Get("zh"); zh != "阿里云表格存储工具" {
27+
t.Errorf("Short zh expected '阿里云表格存储工具', got %s", zh)
2828
}
29-
if cmd.Usage != "aliyun ots <command> --region cn-hangzhou" {
30-
t.Errorf("Usage expected 'aliyun ots <command> --region cn-hangzhou', got %s", cmd.Usage)
29+
if cmd.Usage != "aliyun otsutil <command> [args...]" {
30+
t.Errorf("Usage expected 'aliyun otsutil <command> [args...]', got %s", cmd.Usage)
3131
}
3232
if cmd.Hidden {
3333
t.Errorf("Hidden expected false")
@@ -47,26 +47,26 @@ func TestNewOtsCommand(t *testing.T) {
4747
}
4848

4949
func TestNewOtsCommandMetadata(t *testing.T) {
50-
cmd := NewOtsCommand()
50+
cmd := NewOtsutilCommand()
5151
metaMap := map[string]*cli.Metadata{}
5252
cmd.GetMetadata(metaMap)
5353
m, ok := metaMap[cmd.Name]
5454
if !ok {
5555
t.Fatalf("metadata for %s not found", cmd.Name)
5656
}
57-
if m.Name != "ots" {
58-
t.Errorf("metadata name expected ots, got %s", m.Name)
57+
if m.Name != "otsutil" {
58+
t.Errorf("metadata name expected otsutil, got %s", m.Name)
5959
}
6060
if m.Usage != cmd.Usage {
6161
t.Errorf("metadata usage mismatch")
6262
}
6363
if m.Hidden != cmd.Hidden {
6464
t.Errorf("metadata hidden mismatch")
6565
}
66-
if se := m.Short["en"]; se != "Alibaba Cloud Tablestore CLI" {
66+
if se := m.Short["en"]; se != "Alibaba Cloud Tablestore Utility" {
6767
t.Errorf("metadata short en mismatch: %s", se)
6868
}
69-
if sz := m.Short["zh"]; sz != "阿里云表格存储CLI工具" {
69+
if sz := m.Short["zh"]; sz != "阿里云表格存储工具" {
7070
t.Errorf("metadata short zh mismatch: %s", sz)
7171
}
7272
}
@@ -83,12 +83,12 @@ func TestOtsCommandRunInstalledSkipNetwork(t *testing.T) {
8383
if err := os.WriteFile(execPath, []byte("#!/bin/sh\necho dummy\n"), 0755); err != nil {
8484
t.Fatalf("write fake exec: %v", err)
8585
}
86-
86+
8787
// 设置忽略profile,避免真实配置依赖
8888
os.Setenv("ALIBABA_CLOUD_IGNORE_PROFILE", "TRUE")
8989
defer os.Unsetenv("ALIBABA_CLOUD_IGNORE_PROFILE")
9090

91-
cmd := NewOtsCommand()
91+
cmd := NewOtsutilCommand()
9292
stdout := &bytes.Buffer{}
9393
stderr := &bytes.Buffer{}
9494
ctx := cli.NewCommandContext(stdout, stderr)
@@ -104,4 +104,3 @@ func TestOtsCommandRunInstalledSkipNetwork(t *testing.T) {
104104
t.Errorf("unexpected error: %v", err)
105105
}
106106
}
107-

0 commit comments

Comments
 (0)