go.modファイルのパーサー
golang.org/x/mod/modfileが用意されているので、これを使えばいい。
例えばモジュールのパスを取得したい場合は以下のように書く。
package main
import ( "fmt" "log" "os"
"golang.org/x/mod/modfile")
func main() { data, err := os.ReadFile("go.mod") if err != nil { log.Fatalln(err) } modPath := modfile.ModulePath(data) if modPath == "" { log.Fatalln("invalid go.mod syntax") } fmt.Println(modPath)}