Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
93537d45
H
hub
项目概览
github
/
hub
8 个月 前同步成功
通知
3
Star
22523
Fork
2406
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
93537d45
编写于
5月 26, 2020
作者:
M
Mislav Marohnić
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'git-empty-args'
上级
6c63f562
3df55266
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
7 deletion
+29
-7
cmd/cmd.go
cmd/cmd.go
+12
-2
cmd/cmd_test.go
cmd/cmd_test.go
+8
-0
commands/args.go
commands/args.go
+1
-3
commands/args_test.go
commands/args_test.go
+6
-0
commands/init_test.go
commands/init_test.go
+2
-2
未找到文件。
cmd/cmd.go
浏览文件 @
93537d45
...
...
@@ -21,7 +21,17 @@ type Cmd struct {
}
func
(
cmd
Cmd
)
String
()
string
{
return
fmt
.
Sprintf
(
"%s %s"
,
cmd
.
Name
,
strings
.
Join
(
cmd
.
Args
,
" "
))
args
:=
make
([]
string
,
len
(
cmd
.
Args
))
for
i
,
a
:=
range
cmd
.
Args
{
if
strings
.
ContainsRune
(
a
,
'"'
)
{
args
[
i
]
=
fmt
.
Sprintf
(
`'%s'`
,
a
)
}
else
if
a
==
""
||
strings
.
ContainsRune
(
a
,
'\'
'
)
||
strings
.
ContainsRune
(
a
,
' '
)
{
args
[
i
]
=
fmt
.
Sprintf
(
`"%s"`
,
a
)
}
else
{
args
[
i
]
=
a
}
}
return
fmt
.
Sprintf
(
"%s %s"
,
cmd
.
Name
,
strings
.
Join
(
args
,
" "
))
}
// WithArg returns the current argument
...
...
@@ -138,7 +148,7 @@ func NewWithArray(cmd []string) *Cmd {
func
verboseLog
(
cmd
*
Cmd
)
{
if
os
.
Getenv
(
"HUB_VERBOSE"
)
!=
""
{
msg
:=
fmt
.
Sprintf
(
"$ %s
%s"
,
cmd
.
Name
,
strings
.
Join
(
cmd
.
Args
,
" "
))
msg
:=
fmt
.
Sprintf
(
"$ %s
"
,
cmd
.
String
(
))
if
ui
.
IsTerminal
(
os
.
Stderr
)
{
msg
=
fmt
.
Sprintf
(
"
\0
33[35m%s
\0
33[0m"
,
msg
)
}
...
...
cmd/cmd_test.go
浏览文件 @
93537d45
...
...
@@ -18,3 +18,11 @@ func TestWithArg(t *testing.T) {
assert
.
Equal
(
t
,
"git"
,
execCmd
.
Name
)
assert
.
Equal
(
t
,
4
,
len
(
execCmd
.
Args
))
}
func
Test_String
(
t
*
testing
.
T
)
{
c
:=
Cmd
{
Name
:
"echo"
,
Args
:
[]
string
{
"hi"
,
"hello world"
,
"don't"
,
`"fake news"`
},
}
assert
.
Equal
(
t
,
`echo hi "hello world" "don't" '"fake news"'`
,
c
.
String
())
}
commands/args.go
浏览文件 @
93537d45
...
...
@@ -92,9 +92,7 @@ func (a *Args) ToCmd() *cmd.Cmd {
}
for
_
,
arg
:=
range
a
.
Params
{
if
arg
!=
""
{
c
.
WithArg
(
arg
)
}
c
.
WithArg
(
arg
)
}
return
c
...
...
commands/args_test.go
浏览文件 @
93537d45
...
...
@@ -120,6 +120,12 @@ func TestArgs_GlobalFlags_Replaced(t *testing.T) {
assert
.
Equal
(
t
,
[]
string
{
"-a"
,
"http://example.com"
},
cmd
.
Args
)
}
func
TestArgs_ToCmd
(
t
*
testing
.
T
)
{
args
:=
NewArgs
([]
string
{
"a"
,
""
,
"b"
,
""
})
cmd
:=
args
.
ToCmd
()
assert
.
Equal
(
t
,
[]
string
{
"a"
,
""
,
"b"
,
""
},
cmd
.
Args
)
}
func
TestArgs_GlobalFlags_BeforeAfterChain
(
t
*
testing
.
T
)
{
args
:=
NewArgs
([]
string
{
"-c"
,
"key=value"
,
"-C"
,
"dir"
,
"status"
})
args
.
Before
(
"git"
,
"remote"
,
"add"
)
...
...
commands/init_test.go
浏览文件 @
93537d45
...
...
@@ -57,13 +57,13 @@ func TestInitInAnotherDir(t *testing.T) {
commands
:=
args
.
Commands
()
assert
.
Equal
(
t
,
2
,
len
(
commands
))
assert
.
Equal
(
t
,
"git init --template mytpl --shared=umask
my project
"
,
commands
[
0
]
.
String
())
assert
.
Equal
(
t
,
"git init --template mytpl --shared=umask
\"
my project
\"
"
,
commands
[
0
]
.
String
())
currentDir
,
err
:=
os
.
Getwd
()
assert
.
Equal
(
t
,
nil
,
err
)
expected
:=
fmt
.
Sprintf
(
"git --git-dir
%s
remote add origin git@github.com:jingweno/%s.git"
,
"git --git-dir
\"
%s
\"
remote add origin git@github.com:jingweno/%s.git"
,
filepath
.
Join
(
currentDir
,
"my project"
,
".git"
),
"my-project"
,
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录