提交 e5e4972d 编写于 作者: chai2010's avatar chai2010

修复 wa.mod.json 文件加载问题

上级 3bd7be6a
...@@ -76,10 +76,10 @@ fn main() { ...@@ -76,10 +76,10 @@ fn main() {
} }
``` ```
输出结果: 运行并输出结果:
``` ```
$ wa run _examples/prime $ go run main.go run _examples/prime
2 2
3 3
5 5
......
...@@ -6,6 +6,8 @@ import ( ...@@ -6,6 +6,8 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"github.com/wa-lang/wa/internal/config"
) )
func findPkgInfo(workDir string) (pkgroot, pkgpath string, err error) { func findPkgInfo(workDir string) (pkgroot, pkgpath string, err error) {
...@@ -24,7 +26,7 @@ func findPkgInfo(workDir string) (pkgroot, pkgpath string, err error) { ...@@ -24,7 +26,7 @@ func findPkgInfo(workDir string) (pkgroot, pkgpath string, err error) {
pkgroot = wd pkgroot = wd
for pkgroot != "" { for pkgroot != "" {
waJsonPath := filepath.Join(pkgroot, "wa.json") waJsonPath := filepath.Join(pkgroot, config.WaModFile)
if fi, _ := os.Stat(waJsonPath); fi != nil { if fi, _ := os.Stat(waJsonPath); fi != nil {
pkgpath, err = filepath.Rel(pkgroot, wd) pkgpath, err = filepath.Rel(pkgroot, wd)
pkgroot = filepath.ToSlash(pkgroot) pkgroot = filepath.ToSlash(pkgroot)
......
...@@ -14,9 +14,9 @@ import ( ...@@ -14,9 +14,9 @@ import (
// 模块文件 // 模块文件
const WaModFile = "wa.mod.json" const WaModFile = "wa.mod.json"
// wa.json 文件结构 // WaModFile 文件结构
type Manifest struct { type Manifest struct {
Root string `json:"root"` // wa.json 所在目录 Root string `json:"root"` // WaModFile 所在目录
MainPkg string `json:"main"` // 主包路径 MainPkg string `json:"main"` // 主包路径
Pkg Manifest_package `json:"package"` Pkg Manifest_package `json:"package"`
...@@ -53,7 +53,7 @@ func (p *Manifest) Clone() *Manifest { ...@@ -53,7 +53,7 @@ func (p *Manifest) Clone() *Manifest {
return &v return &v
} }
// 加载 wa.json 文件 // 加载 WaModFile 文件
func LoadManifest(appPath string) (*Manifest, error) { func LoadManifest(appPath string) (*Manifest, error) {
workDir := appPath workDir := appPath
if workDir == "" { if workDir == "" {
...@@ -64,13 +64,13 @@ func LoadManifest(appPath string) (*Manifest, error) { ...@@ -64,13 +64,13 @@ func LoadManifest(appPath string) (*Manifest, error) {
workDir = wd workDir = wd
} }
// 查找 wa.json 路径 // 查找 WaModFile 路径
kManifestPath, err := findManifestPath(workDir) kManifestPath, err := findManifestPath(workDir)
if err != nil { if err != nil {
return nil, fmt.Errorf("loader.LoadManifest: find wa.json failed : %w", err) return nil, fmt.Errorf("loader.LoadManifest: find '%s' failed : %w", WaModFile, err)
} }
// 读取 wa.json 文件 // 读取 WaModFile 文件
data, err := os.ReadFile(kManifestPath) data, err := os.ReadFile(kManifestPath)
if err != nil { if err != nil {
return nil, fmt.Errorf("loader.LoadManifest: read %s failed: %w", kManifestPath, err) return nil, fmt.Errorf("loader.LoadManifest: read %s failed: %w", kManifestPath, err)
...@@ -98,13 +98,13 @@ func (p *Manifest) JSONString() string { ...@@ -98,13 +98,13 @@ func (p *Manifest) JSONString() string {
return string(d) return string(d)
} }
// 查找 wa.json 文件路径 // 查找 WaModFile 文件路径
func findManifestPath(pkgpath string) (string, error) { func findManifestPath(pkgpath string) (string, error) {
if pkgpath == "" { if pkgpath == "" {
return "", fmt.Errorf("empty pkgpath") return "", fmt.Errorf("empty pkgpath")
} }
// 依次向上查找 wa.json // 依次向上查找 WaModFile
pkgroot := pkgpath pkgroot := pkgpath
for pkgroot != "" { for pkgroot != "" {
kManifestPath := filepath.Join(pkgroot, WaModFile) kManifestPath := filepath.Join(pkgroot, WaModFile)
...@@ -122,5 +122,5 @@ func findManifestPath(pkgpath string) (string, error) { ...@@ -122,5 +122,5 @@ func findManifestPath(pkgpath string) (string, error) {
} }
// 查找失败 // 查找失败
return "", fmt.Errorf("%s: <wa.json> not found", pkgpath) return "", fmt.Errorf("%s: '%s' not found", WaModFile, pkgpath)
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册