-func GenerateRPC(gen *Generator, file *File, outputDir string) *GenFile {
- packageDir := filepath.Join(outputDir, file.PackageName)
- filename := filepath.Join(packageDir, file.PackageName+rpcFileSuffix+outputFileExt)
+// resolveImportPath tries to resolve import path for a directory.
+func resolveImportPath(dir string) (string, error) {
+ absPath, err := filepath.Abs(dir)
+ if err != nil {
+ return "", err
+ }
+ modRoot := findGoModuleRoot(absPath)
+ if modRoot == "" {
+ return "", err
+ }
+ modPath, err := readModulePath(path.Join(modRoot, "go.mod"))
+ if err != nil {
+ return "", err
+ }
+ relDir, err := filepath.Rel(modRoot, absPath)
+ if err != nil {
+ return "", err
+ }
+ return filepath.Join(modPath, relDir), nil
+}