Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
66e37d73
wa
项目概览
wa-lang
/
wa
11 个月 前同步成功
通知
68
Star
655
Fork
45
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
wa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
66e37d73
编写于
7月 24, 2022
作者:
chai2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
app 修复 init 生成工程缺少 vendor 目录的问题
上级
e5e4972d
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
64 addition
and
8 deletion
+64
-8
README.md
README.md
+4
-3
internal/app/app.wa.go
internal/app/app.wa.go
+47
-3
internal/waroot/_example_app/LICENSE
internal/waroot/_example_app/LICENSE
+0
-0
internal/waroot/_example_app/README.md
internal/waroot/_example_app/README.md
+0
-0
internal/waroot/_example_app/src/main.wa
internal/waroot/_example_app/src/main.wa
+0
-0
internal/waroot/_example_app/src/mymath/math.wa
internal/waroot/_example_app/src/mymath/math.wa
+0
-0
internal/waroot/_example_app/src/mypkg/pkg.wa
internal/waroot/_example_app/src/mypkg/pkg.wa
+0
-0
internal/waroot/_example_app/wa.mod.json
internal/waroot/_example_app/wa.mod.json
+0
-0
internal/waroot/_example_vendor/3rdparty/pkg/pkg.wa
internal/waroot/_example_vendor/3rdparty/pkg/pkg.wa
+0
-0
internal/waroot/example.go
internal/waroot/example.go
+13
-2
未找到文件。
README.md
浏览文件 @
66e37d73
...
...
@@ -19,9 +19,10 @@
安装和测试:
1.
`go install github.com/wa-lang/wa@latest`
2.
`wa init -name=_examples/hi`
3.
`wa run _examples/hi`
1.
安装
[
Clang
](
https://clang.llvm.org
)
, 确保本地
`clang`
命令有效
2.
`go install github.com/wa-lang/wa@latest`
3.
`wa init -name=_examples/hi`
4.
`wa run _examples/hi`
## 设计目标
...
...
internal/app/app.wa.go
浏览文件 @
66e37d73
...
...
@@ -117,8 +117,8 @@ func (p *App) InitApp(name, pkgpath string, update bool) error {
Year
:
time
.
Now
()
.
Year
(),
}
fileSys
:=
waroot
.
GetExampleAppFS
()
return
fs
.
WalkDir
(
fileSys
,
"."
,
func
(
path
string
,
d
fs
.
DirEntry
,
err
error
)
error
{
appFS
:=
waroot
.
GetExampleAppFS
()
err
:=
fs
.
WalkDir
(
appFS
,
"."
,
func
(
path
string
,
d
fs
.
DirEntry
,
err
error
)
error
{
if
d
==
nil
||
d
.
IsDir
()
{
return
nil
}
...
...
@@ -126,7 +126,7 @@ func (p *App) InitApp(name, pkgpath string, update bool) error {
return
err
}
data
,
err
:=
fs
.
ReadFile
(
fileSys
,
path
)
data
,
err
:=
fs
.
ReadFile
(
appFS
,
path
)
if
err
!=
nil
{
return
err
}
...
...
@@ -152,6 +152,50 @@ func (p *App) InitApp(name, pkgpath string, update bool) error {
return
nil
})
if
err
!=
nil
{
return
err
}
vendorFS
:=
waroot
.
GetExampleVendorFS
()
err
=
fs
.
WalkDir
(
vendorFS
,
"."
,
func
(
path
string
,
d
fs
.
DirEntry
,
err
error
)
error
{
if
d
==
nil
||
d
.
IsDir
()
{
return
nil
}
if
err
!=
nil
{
return
err
}
data
,
err
:=
fs
.
ReadFile
(
vendorFS
,
path
)
if
err
!=
nil
{
return
err
}
tmpl
,
err
:=
template
.
New
(
path
)
.
Parse
(
string
(
data
))
if
err
!=
nil
{
return
err
}
dstpath
:=
filepath
.
Join
(
name
,
"vendor"
,
path
)
os
.
MkdirAll
(
filepath
.
Dir
(
dstpath
),
0777
)
f
,
err
:=
os
.
Create
(
dstpath
)
if
err
!=
nil
{
return
err
}
defer
f
.
Close
()
err
=
tmpl
.
Execute
(
f
,
&
info
)
if
err
!=
nil
{
return
err
}
return
nil
})
if
err
!=
nil
{
return
err
}
return
nil
}
func
(
p
*
App
)
Fmt
(
path
string
)
error
{
...
...
internal/waroot/_example_
template
/LICENSE
→
internal/waroot/_example_
app
/LICENSE
浏览文件 @
66e37d73
文件已移动
internal/waroot/_example_
template
/README.md
→
internal/waroot/_example_
app
/README.md
浏览文件 @
66e37d73
文件已移动
internal/waroot/_example_
template
/src/main.wa
→
internal/waroot/_example_
app
/src/main.wa
浏览文件 @
66e37d73
文件已移动
internal/waroot/_example_
template
/src/mymath/math.wa
→
internal/waroot/_example_
app
/src/mymath/math.wa
浏览文件 @
66e37d73
文件已移动
internal/waroot/_example_
template
/src/mypkg/pkg.wa
→
internal/waroot/_example_
app
/src/mypkg/pkg.wa
浏览文件 @
66e37d73
文件已移动
internal/waroot/_example_
template
/wa.mod.json
→
internal/waroot/_example_
app
/wa.mod.json
浏览文件 @
66e37d73
文件已移动
internal/waroot/_example_
template/
vendor/3rdparty/pkg/pkg.wa
→
internal/waroot/_example_vendor/3rdparty/pkg/pkg.wa
浏览文件 @
66e37d73
文件已移动
internal/waroot/example.go
浏览文件 @
66e37d73
...
...
@@ -7,11 +7,22 @@ import (
"io/fs"
)
//go:embed _example_
template
//go:embed _example_
app
var
_exampleAppFS
embed
.
FS
//go:embed _example_vendor
var
_exampleVendorFS
embed
.
FS
func
GetExampleAppFS
()
fs
.
FS
{
fs
,
err
:=
fs
.
Sub
(
_exampleAppFS
,
"_example_template"
)
fs
,
err
:=
fs
.
Sub
(
_exampleAppFS
,
"_example_app"
)
if
err
!=
nil
{
panic
(
err
)
}
return
fs
}
func
GetExampleVendorFS
()
fs
.
FS
{
fs
,
err
:=
fs
.
Sub
(
_exampleVendorFS
,
"_example_vendor"
)
if
err
!=
nil
{
panic
(
err
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录