diff --git a/doc/nep/definition/4-steps.mdx b/doc/nep/definition/4-steps.mdx
index 7a1fcb88..a0efc395 100644
--- a/doc/nep/definition/4-steps.mdx
+++ b/doc/nep/definition/4-steps.mdx
@@ -28,6 +28,7 @@ import { Tag } from "../../components/tag.tsx"
* 示例:`to = "./config"`
* 校验规则:
* 是合法路径
+ * 不包含通配符
#### overwrite
可选 是否覆盖,缺省为 `false`。
* 类型:`bool`
@@ -167,6 +168,7 @@ import { Tag } from "../../components/tag.tsx"
* 示例:`to = "./bin"`
* 校验规则:
* 是合法路径
+ * 不包含通配符
#### overwrite
可选 是否覆盖,缺省为 `false`。
* 类型:`bool`
@@ -187,6 +189,7 @@ import { Tag } from "../../components/tag.tsx"
```
* 校验规则:
* 是合法路径
+ * 不包含通配符
#### overwrite
可选 是否覆盖,缺省为 false。
* 类型:`bool`
diff --git a/src/types/steps/copy.rs b/src/types/steps/copy.rs
index 869f905c..bdc095ec 100644
--- a/src/types/steps/copy.rs
+++ b/src/types/steps/copy.rs
@@ -36,6 +36,7 @@ pub struct StepCopy {
/// 目标路径,支持相对路径和绝对路径。
//# `to = "./config"`
//@ 是合法路径
+ //@ 不包含通配符
pub to: String,
/// 是否覆盖,缺省为 `false`。
//# `overwrite = true`
@@ -198,7 +199,16 @@ impl Verifiable for StepCopy {
fn verify_self(&self, located: &String) -> Result<()> {
values_validator_path(&self.from)?;
values_validator_path(&self.to)?;
- common_wild_match_verify(&self.from, &self.to, located)
+ common_wild_match_verify(&self.from, &self.to, located)?;
+ // 检查 to 是否包含通配符
+ if contains_wild_match(&self.to) {
+ return Err(anyhow!(
+ "Error(Copy):Field 'to' shouldn't contain wild match : '{to}'",
+ to = &self.to
+ ));
+ }
+
+ Ok(())
}
}
diff --git a/src/types/steps/mv.rs b/src/types/steps/mv.rs
index 76f37064..8a31d2e3 100644
--- a/src/types/steps/mv.rs
+++ b/src/types/steps/mv.rs
@@ -32,6 +32,7 @@ pub struct StepMove {
/// 目标路径,支持相对路径和绝对路径。
//# `to = "./bin"`
//@ 是合法路径
+ //@ 不包含通配符
pub to: String,
/// 是否覆盖,缺省为 `false`。
//# `overwrite = "true"`
diff --git a/src/types/steps/new.rs b/src/types/steps/new.rs
index ea14327a..1bf98d9d 100644
--- a/src/types/steps/new.rs
+++ b/src/types/steps/new.rs
@@ -27,6 +27,7 @@ pub struct StepNew {
//# at = "${Desktop}/Microsoft/"
//# ```
//@ 是合法路径
+ //@ 不包含通配符
pub at: String,
/// 是否覆盖,缺省为 false。
//# `overwrite = "true"`