Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
333cae20
H
hub
项目概览
github
/
hub
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
333cae20
编写于
11月 26, 2013
作者:
J
Jingwen Owen Ou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use shell quote for exec cmd
上级
03190d6e
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
24 addition
and
37 deletion
+24
-37
cmd/cmd.go
cmd/cmd.go
+12
-2
cmd/cmd_test.go
cmd/cmd_test.go
+7
-0
commands/pull_request.go
commands/pull_request.go
+5
-5
git/git.go
git/git.go
+0
-23
git/git_test.go
git/git_test.go
+0
-7
未找到文件。
cmd/cmd.go
浏览文件 @
333cae20
...
...
@@ -2,6 +2,8 @@ package cmd
import
(
"fmt"
"github.com/jingweno/gh/utils"
"github.com/kballard/go-shellquote"
"os"
"os/exec"
"strings"
...
...
@@ -52,8 +54,16 @@ func (cmd *Cmd) Exec() error {
return
c
.
Run
()
}
func
New
(
name
string
)
*
Cmd
{
return
&
Cmd
{
Name
:
name
,
Args
:
make
([]
string
,
0
)}
func
New
(
cmd
string
)
*
Cmd
{
cmds
,
err
:=
shellquote
.
Split
(
cmd
)
utils
.
Check
(
err
)
name
:=
cmds
[
0
]
args
:=
make
([]
string
,
0
)
for
_
,
arg
:=
range
cmds
[
1
:
]
{
args
=
append
(
args
,
arg
)
}
return
&
Cmd
{
Name
:
name
,
Args
:
args
}
}
func
NewWithArray
(
cmd
[]
string
)
*
Cmd
{
...
...
cmd/cmd_test.go
浏览文件 @
333cae20
...
...
@@ -5,6 +5,13 @@ import (
"testing"
)
func
TestNew
(
t
*
testing
.
T
)
{
execCmd
:=
New
(
"vim --noplugin"
)
assert
.
Equal
(
t
,
"vim"
,
execCmd
.
Name
)
assert
.
Equal
(
t
,
1
,
len
(
execCmd
.
Args
))
assert
.
Equal
(
t
,
"--noplugin"
,
execCmd
.
Args
[
0
])
}
func
TestWithArg
(
t
*
testing
.
T
)
{
execCmd
:=
New
(
"git"
)
execCmd
.
WithArg
(
"log"
)
.
WithArg
(
"--no-color"
)
...
...
commands/pull_request.go
浏览文件 @
333cae20
...
...
@@ -105,12 +105,12 @@ func writePullRequestTitleAndBody(repo *github.Repo) (title, body string, err er
return
}
editor
Path
,
err
:=
git
.
EditorPath
()
editor
,
err
:=
git
.
Editor
()
if
err
!=
nil
{
return
}
err
=
editTitleAndBody
(
editor
Path
,
messageFile
)
err
=
editTitleAndBody
(
editor
,
messageFile
)
if
err
!=
nil
{
return
}
...
...
@@ -154,10 +154,10 @@ func writePullRequestChanges(repo *github.Repo, messageFile string) error {
return
ioutil
.
WriteFile
(
messageFile
,
[]
byte
(
message
),
0644
)
}
func
editTitleAndBody
(
editor
Path
,
messageFile
string
)
error
{
editCmd
:=
cmd
.
New
(
editor
Path
)
func
editTitleAndBody
(
editor
,
messageFile
string
)
error
{
editCmd
:=
cmd
.
New
(
editor
)
r
:=
regexp
.
MustCompile
(
"[mg]?vi[m]$"
)
if
r
.
MatchString
(
editor
Path
)
{
if
r
.
MatchString
(
editor
)
{
editCmd
.
WithArg
(
"-c"
)
editCmd
.
WithArg
(
"set ft=gitcommit tw=0 wrap lbr"
)
}
...
...
git/git.go
浏览文件 @
333cae20
...
...
@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
"github.com/jingweno/gh/cmd"
"os/exec"
"path/filepath"
"strings"
)
...
...
@@ -51,28 +50,6 @@ func Editor() (string, error) {
return
output
[
0
],
nil
}
func
EditorPath
()
(
string
,
error
)
{
gitEditor
,
err
:=
Editor
()
if
err
!=
nil
{
return
""
,
err
}
gitEditorWithParams
:=
strings
.
Split
(
gitEditor
,
" "
)
gitEditor
=
gitEditorWithParams
[
0
]
gitEditorParams
:=
gitEditorWithParams
[
1
:
]
editorPath
,
err
:=
exec
.
LookPath
(
gitEditor
)
if
err
!=
nil
{
return
""
,
errors
.
New
(
"Can't locate git editor: "
+
gitEditor
)
}
for
_
,
p
:=
range
gitEditorParams
{
editorPath
=
editorPath
+
" "
+
p
}
return
editorPath
,
nil
}
func
Head
()
(
*
Branch
,
error
)
{
output
,
err
:=
execGitCmd
(
"symbolic-ref"
,
"-q"
,
"HEAD"
)
if
err
!=
nil
{
...
...
git/git_test.go
浏览文件 @
333cae20
...
...
@@ -23,13 +23,6 @@ func TestGitEditor(t *testing.T) {
}
}
func
TestGitEditorPath
(
t
*
testing
.
T
)
{
gitEditorPath
,
err
:=
EditorPath
()
if
err
==
nil
{
assert
.
NotEqual
(
t
,
""
,
gitEditorPath
)
}
}
func
TestGitRemote
(
t
*
testing
.
T
)
{
gitRemote
,
_
:=
OriginRemote
()
assert
.
Equal
(
t
,
"origin"
,
gitRemote
.
Name
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录