From 4bfbbdb2e71a1e879112d76d43ed1af7591d4e24 Mon Sep 17 00:00:00 2001 From: Cno Date: Sun, 12 Nov 2023 01:33:40 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=A3=80=E6=9F=A5=E4=B8=8D=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E9=80=9A=E9=85=8D=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/nep/definition/4-steps.mdx | 3 +++ src/types/steps/copy.rs | 12 +++++++++++- src/types/steps/mv.rs | 1 + src/types/steps/new.rs | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) 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"`