From 0714fc5c1b89e7cb945e7131ed97109ddc451307 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Wed, 11 Mar 2026 11:48:00 +0100 Subject: [PATCH] feat: add script to check and update package versions for sk-tools --- scripts/check-package-version.mjs | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 scripts/check-package-version.mjs diff --git a/scripts/check-package-version.mjs b/scripts/check-package-version.mjs new file mode 100755 index 0000000..20cde9a --- /dev/null +++ b/scripts/check-package-version.mjs @@ -0,0 +1,35 @@ +#!/usr/bin/env node + +import { readFileSync, writeFileSync } from "node:fs"; +import { execSync, spawnSync } from "node:child_process"; +import { resolve } from "node:path"; +import { parseArgs } from "node:util"; + +const skAzToolsPackagePath = resolve("package.json"); +const skToolsPackagePath = resolve("../sk-tools", "package.json"); + +const skAzToolsPackage = JSON.parse(readFileSync(skAzToolsPackagePath, "utf-8")); +const skToolsPackage = JSON.parse(readFileSync(skToolsPackagePath, "utf-8")); + +const { values } = parseArgs({ + options: { + update: { type: "boolean", short: "u", description: "Update @slawek/sk-tools to the latest version." } + } +}); + +// Package versions +console.log(`SK Tools version: ${skToolsPackage.version}`); +console.log(`SK Azure Tools version: ${skAzToolsPackage.version}`); + +if (values.update) { + console.log(`\nUpdating package.json to use @slawek/sk-tools version ${skToolsPackage.version} or later...`); + skAzToolsPackage.dependencies["@slawek/sk-tools"] = `>=${skToolsPackage.version}`; + writeFileSync(skAzToolsPackagePath, JSON.stringify(skAzToolsPackage, null, 4)); + // Install and link the updated package + spawnSync("npm", ["install", "@slawek/sk-tools"], { stdio: "inherit" }); + spawnSync("npm", ["link", "@slawek/sk-tools"], { stdio: "inherit" }); + // Show the updated dependency tree + spawnSync("npm", ["ls"], { stdio: "inherit" }); +} else { + console.log(`\nSK Tools version requested: ${skAzToolsPackage.dependencies["@slawek/sk-tools"] ?? "not found"}`); +}