mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 03:41:50 +00:00
test(shared): preserve tabbed ignore anchoring
This commit is contained in:
@@ -122,19 +122,22 @@ describe("DefaultPackageManager", () => {
|
||||
it("keeps auto-discovered project skills inside their skill root", async () => {
|
||||
const root = await makeTempDir("openclaw-package-manager-");
|
||||
const agentsSkillsRoot = join(root, ".agents", "skills");
|
||||
const insideSkill = join(agentsSkillsRoot, "inside", "SKILL.md");
|
||||
const insideSkill = join(agentsSkillsRoot, "group", "deep", "t", "SKILL.md");
|
||||
const ignoredSkill = join(agentsSkillsRoot, "group", "deep", "ignored", "SKILL.md");
|
||||
const escapedSkill = join(agentsSkillsRoot, "group", "deep", "!literal", "SKILL.md");
|
||||
const outsideRoot = join(root, "outside");
|
||||
await mkdir(join(root, ".git"));
|
||||
await mkdir(join(agentsSkillsRoot, "inside"), { recursive: true });
|
||||
await mkdir(join(agentsSkillsRoot, "group", "deep", "t"), { recursive: true });
|
||||
await mkdir(join(agentsSkillsRoot, "group", "deep", "ignored"), { recursive: true });
|
||||
await mkdir(join(agentsSkillsRoot, "group", "deep", "!literal"), { recursive: true });
|
||||
await mkdir(outsideRoot, { recursive: true });
|
||||
await writeFile(insideSkill, "# Inside\n", "utf-8");
|
||||
await writeFile(ignoredSkill, "# Ignored\n", "utf-8");
|
||||
await writeFile(escapedSkill, "# Ignored\n", "utf-8");
|
||||
await writeFile(join(agentsSkillsRoot, "group", ".gitignore"), "ignored/ \n\\!literal/\n");
|
||||
await writeFile(
|
||||
join(agentsSkillsRoot, "group", ".gitignore"),
|
||||
"ignored/ \nt/\t\n\\!literal/\n",
|
||||
);
|
||||
await writeFile(join(outsideRoot, "SKILL.md"), "# Outside\n", "utf-8");
|
||||
|
||||
try {
|
||||
|
||||
@@ -36,6 +36,7 @@ function prefixIgnorePattern(line: string, prefix: string): string {
|
||||
const pattern = negated ? line.slice(1) : line;
|
||||
const anchored = pattern.startsWith("/");
|
||||
const normalized = anchored ? pattern.slice(1) : pattern;
|
||||
// Git discards trailing spaces only; broader trimming would over-expand nested rules.
|
||||
const matchPattern = normalized.replace(/ +$/, "");
|
||||
const depthGlob = prefix && !anchored && !matchPattern.slice(0, -1).includes("/") ? "**/" : "";
|
||||
const prefixed = `${prefix}${depthGlob}${normalized}`;
|
||||
|
||||
Reference in New Issue
Block a user