@@ -40,28 +40,19 @@ type InterfaceDesc struct {
4040}
4141
4242func main () {
43- modulePath , err := getModulePath (os .Getenv ("MOCKTAIL_TEST_PATH" ))
43+ info , err := getModuleInfo (os .Getenv ("MOCKTAIL_TEST_PATH" ))
4444 if err != nil {
4545 log .Fatal ("get module path" , err )
4646 }
4747
48- moduleName , err := getModuleName (modulePath )
49- if err != nil {
50- log .Fatal ("get module name" , err )
51- }
52-
53- root := filepath .Dir (modulePath )
54-
55- // moduleName: github.com/traefik/mocktail
56- // modulePath: /home/ldez/go/src/github.com/traefik/mocktail/go.mod
57- // root: /home/ldez/go/src/github.com/traefik/mocktail
48+ root := info .Dir
5849
5950 err = os .Chdir (root )
6051 if err != nil {
6152 log .Fatalf ("Chdir: %v" , err )
6253 }
6354
64- model , err := walk (root , moduleName )
55+ model , err := walk (root , info . Path )
6556 if err != nil {
6657 log .Fatalf ("walk: %v" , err )
6758 }
@@ -120,21 +111,19 @@ func walk(root, moduleName string) (map[string]PackageDesc, error) {
120111
121112 interfaceName := line [i + len (commentTagPattern ):]
122113
123- filePkgName , err := filepath .Rel (root , filepath .Dir (fp ))
124- if err != nil {
125- return err
126- }
127-
128- var pkgName string
114+ var importPath string
129115 if index := strings .LastIndex (interfaceName , "." ); index > 0 {
130- pkgName = interfaceName [:index ]
116+ importPath = path .Join (moduleName , interfaceName [:index ])
117+
131118 interfaceName = interfaceName [index + 1 :]
132119 } else {
133- pkgName = filePkgName
134- }
120+ filePkgName , err := filepath .Rel (root , filepath .Dir (fp ))
121+ if err != nil {
122+ return err
123+ }
135124
136- importPathFile : = path .Join (moduleName , filePkgName )
137- importPath := path . Join ( moduleName , pkgName )
125+ importPath = path .Join (moduleName , filePkgName )
126+ }
138127
139128 pkg , err := importR .Import (importPath )
140129 if err != nil {
@@ -161,7 +150,7 @@ func walk(root, moduleName string) (map[string]PackageDesc, error) {
161150
162151 interfaceDesc .Methods = append (interfaceDesc .Methods , method )
163152
164- for _ , imp := range getMethodImports (method , importPathFile ) {
153+ for _ , imp := range getMethodImports (method , packageDesc . PkgPath ) {
165154 packageDesc .Imports [imp ] = struct {}{}
166155 }
167156 }
0 commit comments