From 1f2154738be526da9aa9868cbfab9b91eeb49e87 Mon Sep 17 00:00:00 2001 From: bonfy Date: Thu, 12 Apr 2018 16:05:36 +0800 Subject: [PATCH 1/5] add os.PathSeparator to the return value of findCmdDir func --- cobra/cmd/project.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index 7ddb8258..c7503b37 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -134,21 +134,21 @@ func (p *Project) CmdPath() string { // looks for existing cmd dir in absPath. func findCmdDir(absPath string) string { if !exists(absPath) || isEmpty(absPath) { - return "cmd" + return string(os.PathSeparator) + "cmd" } if isCmdDir(absPath) { - return filepath.Base(absPath) + return string(os.PathSeparator) + filepath.Base(absPath) } files, _ := filepath.Glob(filepath.Join(absPath, "c*")) for _, file := range files { if isCmdDir(file) { - return filepath.Base(file) + return string(os.PathSeparator) + filepath.Base(file) } } - return "cmd" + return string(os.PathSeparator) + "cmd" } // isCmdDir checks if base of name is one of cmdDir. From c03b5c3e9c9df3759d78fbaf0c9e1792b3fe7107 Mon Sep 17 00:00:00 2001 From: bonfy Date: Fri, 13 Apr 2018 09:45:59 +0800 Subject: [PATCH 2/5] add func findCmdSuffix --- cobra/cmd/project.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index c7503b37..29b8ae06 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -92,7 +92,9 @@ func NewProjectFromPath(absPath string) *Project { } p := new(Project) - p.absPath = strings.TrimSuffix(absPath, findCmdDir(absPath)) + + cmdDir := findCmdDir(absPath) + p.absPath = strings.TrimSuffix(absPath, findCmdSuffix(cmdDir)) p.name = filepath.ToSlash(trimSrcPath(p.absPath, p.SrcPath())) return p } @@ -130,25 +132,33 @@ func (p *Project) CmdPath() string { return p.cmdPath } +// findCmdSuffix return the cmd dir start with file path separator +func findCmdSuffix(cmdDir string) string { + if filepathHasPrefix(cmdDir, string(os.PathSeparator)) { + return cmdDir + } + return string(os.PathSeparator) + cmdDir +} + // findCmdDir checks if base of absPath is cmd dir and returns it or // looks for existing cmd dir in absPath. func findCmdDir(absPath string) string { if !exists(absPath) || isEmpty(absPath) { - return string(os.PathSeparator) + "cmd" + return "cmd" } if isCmdDir(absPath) { - return string(os.PathSeparator) + filepath.Base(absPath) + return filepath.Base(absPath) } files, _ := filepath.Glob(filepath.Join(absPath, "c*")) for _, file := range files { if isCmdDir(file) { - return string(os.PathSeparator) + filepath.Base(file) + return filepath.Base(file) } } - return string(os.PathSeparator) + "cmd" + return "cmd" } // isCmdDir checks if base of name is one of cmdDir. From 219242841f100a4ac967106cf5a4d05d5ede3159 Mon Sep 17 00:00:00 2001 From: bonfy Date: Thu, 11 Jul 2019 09:42:20 +0800 Subject: [PATCH 3/5] fix comment --- cobra/cmd/project.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index 29b8ae06..9fab85f6 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -132,7 +132,7 @@ func (p *Project) CmdPath() string { return p.cmdPath } -// findCmdSuffix return the cmd dir start with file path separator +// findCmdSuffix returns the cmd dir start with file path separator. func findCmdSuffix(cmdDir string) string { if filepathHasPrefix(cmdDir, string(os.PathSeparator)) { return cmdDir From ccc29509df09fb35f9f822b9539fedff30c1e1c1 Mon Sep 17 00:00:00 2001 From: bonfy Date: Fri, 12 Jul 2019 09:55:40 +0800 Subject: [PATCH 4/5] change findCmdSuffix to findCmdPath --- cobra/cmd/project.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index 9fab85f6..688ec7d9 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -93,8 +93,7 @@ func NewProjectFromPath(absPath string) *Project { p := new(Project) - cmdDir := findCmdDir(absPath) - p.absPath = strings.TrimSuffix(absPath, findCmdSuffix(cmdDir)) + p.absPath = findCmdSuffix(absPath) p.name = filepath.ToSlash(trimSrcPath(p.absPath, p.SrcPath())) return p } @@ -133,11 +132,12 @@ func (p *Project) CmdPath() string { } // findCmdSuffix returns the cmd dir start with file path separator. -func findCmdSuffix(cmdDir string) string { +func findCmdSuffix(path string) string { + cmdDir := findCmdDir(path) if filepathHasPrefix(cmdDir, string(os.PathSeparator)) { - return cmdDir + return strings.TrimSuffix(path, cmdDir) } - return string(os.PathSeparator) + cmdDir + return return strings.TrimSuffix(path, string(os.PathSeparator) + cmdDir) } // findCmdDir checks if base of absPath is cmd dir and returns it or From bacf94f3d51940e8532cc5747bf7a9f67465421c Mon Sep 17 00:00:00 2001 From: bonfy Date: Fri, 12 Jul 2019 10:02:57 +0800 Subject: [PATCH 5/5] fix --- cobra/cmd/project.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index 688ec7d9..6cf0449e 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -93,7 +93,7 @@ func NewProjectFromPath(absPath string) *Project { p := new(Project) - p.absPath = findCmdSuffix(absPath) + p.absPath = findCmdPath(absPath) p.name = filepath.ToSlash(trimSrcPath(p.absPath, p.SrcPath())) return p } @@ -131,13 +131,13 @@ func (p *Project) CmdPath() string { return p.cmdPath } -// findCmdSuffix returns the cmd dir start with file path separator. -func findCmdSuffix(path string) string { +// findCmdPath returns the cmd path. +func findCmdPath(path string) string { cmdDir := findCmdDir(path) if filepathHasPrefix(cmdDir, string(os.PathSeparator)) { return strings.TrimSuffix(path, cmdDir) } - return return strings.TrimSuffix(path, string(os.PathSeparator) + cmdDir) + return strings.TrimSuffix(path, string(os.PathSeparator)+cmdDir) } // findCmdDir checks if base of absPath is cmd dir and returns it or