Documentation
¶
Index ¶
- func FindGoMod(dir string) string
- func FindModuleName(modRoot string) (name string, err error)
- func FindModuleRoot(dir string) (root string)
- func ImportFile(file string) (srcdir, importPath string, err error)
- func ImportPackage(importPath string, dirs ...string) (srcdir string, modName string, err error)
- func ModEnabled(dir string) bool
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FindGoMod ¶
FindGoMod returns the nearest go.mod by walk dir and i's parent and forefathers in order
func FindModuleName ¶
FindModuleName Extract module name from {modRoot}/go.mod
Example ¶
package main
import (
"fmt"
"os"
"github.com/searKing/golang/go/go/cmd/go/modload"
)
func main() {
cwd, err := os.Getwd()
if err != nil {
panic(fmt.Errorf("getwd: %w", err))
}
importPath, err := modload.FindModuleName(modload.FindModuleRoot(cwd))
if err != nil {
panic(fmt.Errorf("find mod name: %w", err))
}
fmt.Print(importPath)
}
Output: github.com/searKing/golang/go
func FindModuleRoot ¶
FindModuleRoot returns the nearest dir of go.mod by walk dir and dir's parent and forefathers in order
func ImportFile ¶
ImportFile finds the package containing importPath, and returns its source directory (an element of $GOPATH) and its import path relative to it.
Example ¶
package main
import (
"fmt"
"os"
"github.com/searKing/golang/go/go/cmd/go/modload"
)
func main() {
cwd, err := os.Getwd()
if err != nil {
panic(fmt.Errorf("getwd: %w", err))
}
//cwd = "/Users/chenhaixin/workspace/go/src/github.com/searKing/golang/go/go/cmd/go/modload/init.go"
srcDir, importPath, err := modload.ImportFile(cwd)
if err != nil {
panic(fmt.Errorf("find import path: %w", err))
}
_ = srcDir
fmt.Println(importPath)
}
Output: github.com/searKing/golang/go/go/cmd/go/modload
func ImportPackage ¶
ImportPackage finds the package and returns its source directory (an element of {dir}'s parent and forefathers in order).
Example ¶
package main
import (
"fmt"
"os"
"github.com/searKing/golang/go/go/cmd/go/modload"
)
func main() {
cwd, err := os.Getwd()
if err != nil {
panic(fmt.Errorf("getwd: %w", err))
}
//cwd = "/Users/chenhaixin/workspace/go/src/github.com/searKing/golang/go/go/cmd/go/modload/init.go"
srcDir, modname, err := modload.ImportPackage("github.com/searKing/golang/go/go/cmd/go/modload", cwd)
if err != nil {
panic(fmt.Errorf("find import path: %w", err))
}
_ = srcDir
fmt.Println(modname)
}
Output: github.com/searKing/golang/go
func ModEnabled ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.