forked from x/icebergs
opt some
This commit is contained in:
parent
80edcfd1be
commit
cf79f573e7
@ -376,6 +376,7 @@ const (
|
|||||||
ORIGIN = "origin"
|
ORIGIN = "origin"
|
||||||
MASTER = "master"
|
MASTER = "master"
|
||||||
INDEX = "index"
|
INDEX = "index"
|
||||||
|
INSTEADOF = "insteadof"
|
||||||
)
|
)
|
||||||
const REPOS = "repos"
|
const REPOS = "repos"
|
||||||
|
|
||||||
@ -436,28 +437,50 @@ func init() {
|
|||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
PULL: {Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
PULL: {Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
insteadof := mdb.Config(m, INSTEADOF)
|
||||||
_repos_each(m, "", func(repos *git.Repository, value ice.Maps) error {
|
_repos_each(m, "", func(repos *git.Repository, value ice.Maps) error {
|
||||||
if value[ORIGIN] == "" {
|
if value[ORIGIN] == "" {
|
||||||
return nil
|
return nil
|
||||||
} else if work, err := repos.Worktree(); err != nil {
|
}
|
||||||
|
remote, err := repos.Remote("origin")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
remoteURL := remote.Config().URLs[0]
|
||||||
|
if insteadof != "" {
|
||||||
|
remoteURL = insteadof + path.Base(remoteURL)
|
||||||
|
}
|
||||||
|
if work, err := repos.Worktree(); err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
return work.Pull(&git.PullOptions{})
|
return work.Pull(&git.PullOptions{RemoteURL: remoteURL})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
|
INSTEADOF: {Name: "insteadof remote", Help: "代理", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
mdb.Config(m, INSTEADOF, m.Option(REMOTE))
|
||||||
|
}},
|
||||||
PUSH: {Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
PUSH: {Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||||
list := _repos_credentials(m)
|
list := _repos_credentials(m)
|
||||||
|
insteadof := mdb.Config(m, INSTEADOF)
|
||||||
_repos_each(m, "", func(repos *git.Repository, value ice.Maps) error {
|
_repos_each(m, "", func(repos *git.Repository, value ice.Maps) error {
|
||||||
if value[ORIGIN] == "" {
|
if value[ORIGIN] == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
remote, err := repos.Remote("origin")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
remoteURL := remote.Config().URLs[0]
|
||||||
|
if insteadof != "" {
|
||||||
|
remoteURL = insteadof + path.Base(remoteURL)
|
||||||
|
}
|
||||||
if u, ok := list[kit.ParseURL(value[ORIGIN]).Host]; !ok {
|
if u, ok := list[kit.ParseURL(value[ORIGIN]).Host]; !ok {
|
||||||
return errors.New("not found userinfo")
|
return errors.New("not found userinfo")
|
||||||
} else if password, ok := u.User.Password(); !ok {
|
} else if password, ok := u.User.Password(); !ok {
|
||||||
return errors.New("not found password")
|
return errors.New("not found password")
|
||||||
} else {
|
} else {
|
||||||
return repos.Push(&git.PushOptions{Auth: &http.BasicAuth{Username: u.User.Username(), Password: password}})
|
return repos.Push(&git.PushOptions{RemoteURL: remoteURL, Auth: &http.BasicAuth{Username: u.User.Username(), Password: password}})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
@ -518,6 +541,9 @@ func init() {
|
|||||||
}
|
}
|
||||||
return _repos_status(m, value[REPOS], repos)
|
return _repos_status(m, value[REPOS], repos)
|
||||||
})
|
})
|
||||||
|
if insteadof := mdb.Config(m, INSTEADOF); insteadof != "" {
|
||||||
|
remote = insteadof + path.Base(remote)
|
||||||
|
}
|
||||||
if u, ok := list[kit.ParseURL(remote).Host]; ok {
|
if u, ok := list[kit.ParseURL(remote).Host]; ok {
|
||||||
password, _ = u.User.Password()
|
password, _ = u.User.Password()
|
||||||
}
|
}
|
||||||
@ -596,6 +622,13 @@ func init() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
|
"remoteURL": {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
remoteURL := _git_remote(m)
|
||||||
|
if insteadof := mdb.Config(m, INSTEADOF); insteadof != "" {
|
||||||
|
remoteURL = insteadof + path.Base(remoteURL)
|
||||||
|
}
|
||||||
|
m.Echo(remoteURL)
|
||||||
|
}},
|
||||||
web.DREAM_ACTION: {Hand: func(m *ice.Message, arg ...string) { web.DreamProcess(m, []string{}, arg...) }},
|
web.DREAM_ACTION: {Hand: func(m *ice.Message, arg ...string) { web.DreamProcess(m, []string{}, arg...) }},
|
||||||
code.INNER: {Hand: func(m *ice.Message, arg ...string) { _repos_inner(m, _repos_path, arg...) }},
|
code.INNER: {Hand: func(m *ice.Message, arg ...string) { _repos_inner(m, _repos_path, arg...) }},
|
||||||
}, aaa.RoleAction(REMOTE), mdb.ClearOnExitHashAction(), mdb.HashAction(mdb.SHORT, REPOS, mdb.FIELD, "time,repos,branch,version,comment,origin")), Hand: func(m *ice.Message, arg ...string) {
|
}, aaa.RoleAction(REMOTE), mdb.ClearOnExitHashAction(), mdb.HashAction(mdb.SHORT, REPOS, mdb.FIELD, "time,repos,branch,version,comment,origin")), Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -88,7 +88,6 @@ func _status_list(m *ice.Message) (files, adds, dels int, last string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
INSTEADOF = "insteadof"
|
|
||||||
OAUTH = "oauth"
|
OAUTH = "oauth"
|
||||||
DIFF = "diff"
|
DIFF = "diff"
|
||||||
OPT = "opt"
|
OPT = "opt"
|
||||||
@ -111,6 +110,10 @@ func init() {
|
|||||||
m.Push(arg[0], kit.MergeURL2(ice.Info.Make.Remote, nfs.PS))
|
m.Push(arg[0], kit.MergeURL2(ice.Info.Make.Remote, nfs.PS))
|
||||||
case nfs.TO:
|
case nfs.TO:
|
||||||
m.Cmd(web.BROAD, func(value ice.Maps) { m.Push(arg[0], kit.Format("http://%s:%s/", value[tcp.HOST], value[tcp.PORT])) })
|
m.Cmd(web.BROAD, func(value ice.Maps) { m.Push(arg[0], kit.Format("http://%s:%s/", value[tcp.HOST], value[tcp.PORT])) })
|
||||||
|
case REMOTE:
|
||||||
|
m.Cmd(web.BROAD, func(value ice.Maps) { m.Push(arg[0], kit.Format("http://%s:%s/x/", value[tcp.HOST], value[tcp.PORT])) })
|
||||||
|
m.Push(arg[0], "http://localhost:9020/x/")
|
||||||
|
m.Push(arg[0], "https://shylinux.com/x/")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -123,12 +126,15 @@ func init() {
|
|||||||
m.Cmdy(REPOS, mdb.INPUTS, arg)
|
m.Cmdy(REPOS, mdb.INPUTS, arg)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
INSTEADOF: {Name: "insteadof from* to", Help: "代理", Hand: func(m *ice.Message, arg ...string) {
|
INSTEADOF: {Name: "insteadof remote", Help: "代理", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(CONFIGS, func(value ice.Maps) {
|
m.Cmdy(REPOS, INSTEADOF, arg)
|
||||||
kit.If(value[mdb.VALUE] == m.Option(nfs.FROM), func() { _configs_set(m, "--unset", value[mdb.NAME]) })
|
|
||||||
})
|
|
||||||
kit.If(m.Option(nfs.TO), func() { _git_cmd(m, CONFIG, "--global", "url."+m.Option(nfs.TO)+".insteadof", m.Option(nfs.FROM)) })
|
|
||||||
}},
|
}},
|
||||||
|
// INSTEADOF: {Name: "insteadof from* to", Help: "代理", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
// m.Cmd(CONFIGS, func(value ice.Maps) {
|
||||||
|
// kit.If(value[mdb.VALUE] == m.Option(nfs.FROM), func() { _configs_set(m, "--unset", value[mdb.NAME]) })
|
||||||
|
// })
|
||||||
|
// kit.If(m.Option(nfs.TO), func() { _git_cmd(m, CONFIG, "--global", "url."+m.Option(nfs.TO)+".insteadof", m.Option(nfs.FROM)) })
|
||||||
|
// }},
|
||||||
CONFIGS: {Name: "configs email* username* token", Help: "配置", Hand: func(m *ice.Message, arg ...string) {
|
CONFIGS: {Name: "configs email* username* token", Help: "配置", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(nfs.DEFS, kit.HomePath(".gitconfig"), nfs.Template(m, "gitconfig", m.Option(aaa.USERNAME), m.Option(aaa.EMAIL)))
|
m.Cmd(nfs.DEFS, kit.HomePath(".gitconfig"), nfs.Template(m, "gitconfig", m.Option(aaa.USERNAME), m.Option(aaa.EMAIL)))
|
||||||
mdb.Config(m, aaa.USERNAME, m.Option(aaa.USERNAME))
|
mdb.Config(m, aaa.USERNAME, m.Option(aaa.USERNAME))
|
||||||
@ -136,7 +142,7 @@ func init() {
|
|||||||
kit.If(m.Option(TOKEN), func() { m.Cmd(TOKEN, "set") })
|
kit.If(m.Option(TOKEN), func() { m.Cmd(TOKEN, "set") })
|
||||||
}},
|
}},
|
||||||
OAUTH: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
|
OAUTH: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(kit.MergeURL2(kit.Select(ice.Info.Make.Domain, _git_remote(m)), web.ChatCmdPath(Prefix(TOKEN), "gen"), tcp.HOST, m.Option(ice.MSG_USERWEB)))
|
m.ProcessOpen(kit.MergeURL2(kit.Select(ice.Info.Make.Domain, m.Cmdx(REPOS, "remoteURL")), web.ChatCmdPath(Prefix(TOKEN), "gen"), tcp.HOST, m.Option(ice.MSG_USERWEB)))
|
||||||
}},
|
}},
|
||||||
cli.RESTART: {Hand: func(m *ice.Message, arg ...string) {
|
cli.RESTART: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Go(func() { m.Cmd(ice.EXIT, "1") }).ProcessHold()
|
m.Go(func() { m.Cmd(ice.EXIT, "1") }).ProcessHold()
|
||||||
@ -168,7 +174,7 @@ func init() {
|
|||||||
m.Action(CONFIGS).Echo("please config email and name. ").EchoButton(CONFIGS)
|
m.Action(CONFIGS).Echo("please config email and name. ").EchoButton(CONFIGS)
|
||||||
} else if len(arg) == 0 {
|
} else if len(arg) == 0 {
|
||||||
kit.If(config != nil, func() { m.Option(aaa.EMAIL, kit.Select(mdb.Config(m, aaa.EMAIL), config.User.Email)) })
|
kit.If(config != nil, func() { m.Option(aaa.EMAIL, kit.Select(mdb.Config(m, aaa.EMAIL), config.User.Email)) })
|
||||||
m.Cmdy(REPOS, STATUS).Action(PULL, PUSH, "oauth", CONFIGS, cli.RESTART)
|
m.Cmdy(REPOS, STATUS).Action(PULL, PUSH, "oauth", CONFIGS, INSTEADOF, cli.RESTART)
|
||||||
} else {
|
} else {
|
||||||
m.Cmdy(REPOS, arg[0], MASTER, INDEX, m.Cmdv(REPOS, arg[0], MASTER, INDEX, nfs.FILE))
|
m.Cmdy(REPOS, arg[0], MASTER, INDEX, m.Cmdv(REPOS, arg[0], MASTER, INDEX, nfs.FILE))
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user