Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
d4c997cc
wa
项目概览
wa-lang
/
wa
10 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
d4c997cc
编写于
7月 23, 2023
作者:
chai2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善 wa init 命令参数检查
上级
02345b4c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
0 deletion
+43
-0
internal/app/appinit/appinit.go
internal/app/appinit/appinit.go
+43
-0
未找到文件。
internal/app/appinit/appinit.go
浏览文件 @
d4c997cc
...
...
@@ -7,8 +7,10 @@ import (
"io/fs"
"os"
"path/filepath"
"strings"
"text/template"
"time"
"unicode"
"wa-lang.org/wa/waroot"
)
...
...
@@ -17,6 +19,13 @@ func InitApp(name, pkgpath string, update bool) error {
if
name
==
""
{
return
fmt
.
Errorf
(
"init failed: <%s> is empty"
,
name
)
}
if
!
isValidAppName
(
name
)
{
return
fmt
.
Errorf
(
"init failed: <%s> is invalid name"
,
name
)
}
if
!
isValidPkgpath
(
pkgpath
)
{
return
fmt
.
Errorf
(
"init failed: <%s> is invalid pkgpath"
,
pkgpath
)
}
if
!
update
{
if
_
,
err
:=
os
.
Lstat
(
name
);
err
==
nil
{
...
...
@@ -114,3 +123,37 @@ func InitApp(name, pkgpath string, update bool) error {
return
nil
}
func
isValidAppName
(
s
string
)
bool
{
if
s
==
""
||
s
[
0
]
==
'_'
||
(
s
[
0
]
>=
'0'
&&
s
[
0
]
<=
'9'
)
{
return
false
}
for
_
,
c
:=
range
[]
rune
(
s
)
{
if
c
==
'_'
||
(
c
>=
'0'
&&
c
<=
'9'
)
||
unicode
.
IsLetter
(
c
)
{
continue
}
return
false
}
return
true
}
func
isValidPkgpath
(
s
string
)
bool
{
if
s
==
""
||
s
[
0
]
==
'_'
||
(
s
[
0
]
>=
'0'
&&
s
[
0
]
<=
'9'
)
{
return
false
}
for
_
,
c
:=
range
[]
rune
(
s
)
{
if
c
==
'_'
||
c
==
'.'
||
c
==
'/'
||
(
c
>=
'0'
&&
c
<=
'9'
)
{
continue
}
if
unicode
.
IsLetter
(
c
)
{
continue
}
return
false
}
var
pkgname
=
s
if
i
:=
strings
.
LastIndex
(
s
,
"/"
);
i
>=
0
{
pkgname
=
s
[
i
+
1
:
]
}
return
isValidAppName
(
pkgname
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录