From ab512157a58a805a254b7ded76da80ee4f0ed379 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 3 Mar 2023 08:34:15 +0000 Subject: [PATCH] Added ability to patch all template repos and push the changes --- .changeset/eleven-gorillas-obey.md | 5 ++ packages/trigger-sdk/src/connection.ts | 2 +- scripts/patchTemplates.js | 89 +++++++++++++++++++ .../patches/add-triggerdotdev-metadata.patch | 23 +++++ 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 .changeset/eleven-gorillas-obey.md create mode 100644 scripts/patchTemplates.js create mode 100644 scripts/patches/add-triggerdotdev-metadata.patch diff --git a/.changeset/eleven-gorillas-obey.md b/.changeset/eleven-gorillas-obey.md new file mode 100644 index 000000000..525eff6b0 --- /dev/null +++ b/.changeset/eleven-gorillas-obey.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/sdk": patch +--- + +Fixed an error message diff --git a/packages/trigger-sdk/src/connection.ts b/packages/trigger-sdk/src/connection.ts index e43a080e5..e8971f4ee 100644 --- a/packages/trigger-sdk/src/connection.ts +++ b/packages/trigger-sdk/src/connection.ts @@ -223,7 +223,7 @@ export class HostConnection implements IConnection { new Date().getTime() - this.#closeUnresponsiveConnectionTimeoutMs ) { this.#logger.error( - "No pong received in last three minutes, closing connection to Interval and retrying..." + "No pong received in last three minutes, closing connection to Trigger.dev and retrying..." ); if (this.#pingIntervalHandle) { clearInterval(this.#pingIntervalHandle); diff --git a/scripts/patchTemplates.js b/scripts/patchTemplates.js new file mode 100644 index 000000000..91b0fbc55 --- /dev/null +++ b/scripts/patchTemplates.js @@ -0,0 +1,89 @@ +const { exec } = require("child_process"); +const fs = require("fs"); +const path = require("path"); +const fetch = require("node-fetch"); + +const templatesDir = process.argv[2]; +if (!templatesDir) { + console.error("Please provide a path to the templates directory"); + process.exit(1); +} + +// patch is a path to a patch file +async function patchTemplate(templateName, patch, message) { + const templateDir = path.join(templatesDir, templateName); + + if (fs.statSync(templateDir).isDirectory()) { + console.log(`Patching template '${templateName}'`); + // Make sure we're on the main branch and there are no uncommitted changes + await execAsync(`cd ${templateDir} && git checkout main`); + + // Make sure there are no uncommitted changes + const preStatus = await execAsync(`cd ${templateDir} && git status`); + + if (!preStatus.includes("nothing to commit")) { + console.error( + `There are uncommitted changes in template '${templateName}'` + ); + return; + } + + // Make sure we're up to date with the remote + await execAsync(`cd ${templateDir} && git pull origin main`); + + // Apply the patch to the template repo + await execAsync(`cd ${templateDir} && git apply ${patch}`); + + // Check if there are any changes + const status = await execAsync(`cd ${templateDir} && git status`); + + if (!status.includes("modified:")) { + console.log(`No changes for template '${templateName}'`); + return; + } + + console.log(`Changes for template '${templateName}':`, status); + + // Create a commit + await execAsync( + `cd ${templateDir} && git add -A && git commit -m "[triggerbot] ${message}"` + ); + + // Push to remote + await execAsync(`cd ${templateDir} && git push origin main`); + + console.log(`Applied patch ${patch} to template '${templateName}'`); + } else { + console.log(`Skipping '${templateName}'`); + } +} + +async function execAsync(command) { + return new Promise((resolve, reject) => { + exec(command, (error, stdout, stderr) => { + if (error) { + reject(error); + } else { + resolve(stdout); + } + }); + }); +} + +// called like so: node scripts/patchTemplates.js /path/to/templates patchFile.patch "Patch message" +async function main() { + // Make a JSON request to https://app.trigger.dev/api/v1/templates and parse the response as an array of templates + const templates = await fetch( + "https://app.trigger.dev/api/v1/templates" + ).then((res) => res.json()); + + for (const template of templates) { + try { + await patchTemplate(template.slug, process.argv[3], process.argv[4]); + } catch (error) { + console.log(`Failed to update template '${template.slug}'`, error); + } + } +} + +main().catch(console.error); diff --git a/scripts/patches/add-triggerdotdev-metadata.patch b/scripts/patches/add-triggerdotdev-metadata.patch new file mode 100644 index 000000000..d75f37922 --- /dev/null +++ b/scripts/patches/add-triggerdotdev-metadata.patch @@ -0,0 +1,23 @@ +From a15d8456dfb82b88137d40e0fc0202dcc8134231 Mon Sep 17 00:00:00 2001 +From: Eric Allam +Date: Thu, 2 Mar 2023 22:46:05 +0000 +Subject: [PATCH] Update package.json + +--- + package.json | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/package.json b/package.json +index f1616fe..d87cec6 100644 +--- a/package.json ++++ b/package.json +@@ -25,5 +25,8 @@ + "tsup": "^6.5.0", + "tsx": "^3.12.2", + "typescript": "^4.9.4" ++ }, ++ "triggerdotdev": { ++ "template": "hello-world" + } + } + \ No newline at end of file