Skip to content

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)
}