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"`