From a34bd62d269ddb1b9205c6c96dc715da305f1ee7 Mon Sep 17 00:00:00 2001 From: Chunan Ye Date: Wed, 29 Jul 2026 13:57:55 -0700 Subject: [PATCH] chore: reuse hooks by building for all plugins --- gulpfile.ts | 9 ++++++++- {plugins/azure-skills/hooks => hooks}/claude-hooks.json | 0 {plugins/azure-skills/hooks => hooks}/cursor-hooks.json | 0 {plugins/azure-skills/hooks => hooks}/hooks.json | 0 .../hooks => hooks}/scripts/track-telemetry.ps1 | 0 .../hooks => hooks}/scripts/track-telemetry.sh | 0 6 files changed, 8 insertions(+), 1 deletion(-) rename {plugins/azure-skills/hooks => hooks}/claude-hooks.json (100%) rename {plugins/azure-skills/hooks => hooks}/cursor-hooks.json (100%) rename {plugins/azure-skills/hooks => hooks}/hooks.json (100%) rename {plugins/azure-skills/hooks => hooks}/scripts/track-telemetry.ps1 (100%) rename {plugins/azure-skills/hooks => hooks}/scripts/track-telemetry.sh (100%) diff --git a/gulpfile.ts b/gulpfile.ts index 9dc8e5438..2d7c250d1 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -4,7 +4,7 @@ import * as nbgv from "nerdbank-gitversioning"; import * as path from "path"; import log from "fancy-log"; import { execSync } from "child_process"; -import { mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "fs"; +import { mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync, cpSync } from "fs"; import Vinyl = require("vinyl"); // Matches top-level skill files like skills/azure-deploy/SKILL.md but not nested ones. @@ -119,6 +119,12 @@ function getPluginDirnames(): string[] { .sort(); } +function copyHookScript(pluginDirname: string) { + const src = path.join(__dirname, "hooks"); + const dst = path.join(__dirname, `output/${pluginDirname}/hooks`); + cpSync(src, dst, { recursive: true }); +} + function buildPlugin(pluginDirname: string): Promise { const legacyChangelog = getLegacyChangelog(pluginDirname); @@ -143,6 +149,7 @@ function buildPlugin(pluginDirname: string): Promise { pipeline.on("end", () => { try { generateChangelog(pluginDirname, legacyChangelog); + copyHookScript(pluginDirname); resolve(); } catch (err) { const error = err instanceof Error ? err : new Error(String(err)); diff --git a/plugins/azure-skills/hooks/claude-hooks.json b/hooks/claude-hooks.json similarity index 100% rename from plugins/azure-skills/hooks/claude-hooks.json rename to hooks/claude-hooks.json diff --git a/plugins/azure-skills/hooks/cursor-hooks.json b/hooks/cursor-hooks.json similarity index 100% rename from plugins/azure-skills/hooks/cursor-hooks.json rename to hooks/cursor-hooks.json diff --git a/plugins/azure-skills/hooks/hooks.json b/hooks/hooks.json similarity index 100% rename from plugins/azure-skills/hooks/hooks.json rename to hooks/hooks.json diff --git a/plugins/azure-skills/hooks/scripts/track-telemetry.ps1 b/hooks/scripts/track-telemetry.ps1 similarity index 100% rename from plugins/azure-skills/hooks/scripts/track-telemetry.ps1 rename to hooks/scripts/track-telemetry.ps1 diff --git a/plugins/azure-skills/hooks/scripts/track-telemetry.sh b/hooks/scripts/track-telemetry.sh similarity index 100% rename from plugins/azure-skills/hooks/scripts/track-telemetry.sh rename to hooks/scripts/track-telemetry.sh