diff --git a/dist/action.d.ts b/dist/action.d.ts deleted file mode 100644 index 27e3984..0000000 --- a/dist/action.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { type PackageManager, type CommandRunner } from "../../ts-apt/dist/index.js"; -import winston from "winston"; -type TarModule = typeof import("tar"); -type EmptyPackageBehavior = "error" | "warn" | "ignore"; -interface PackageName { - readonly name: string; - readonly version?: string; - readonly distro?: string; - serialize(): string; -} -export interface ActionInputs { - readonly packages: string; - readonly version: string; - readonly executeInstallScripts: boolean; - readonly emptyPackagesBehavior: EmptyPackageBehavior; - readonly debug: boolean; -} -export interface ActionOutputs { - readonly cacheHit: boolean; - readonly packageVersionList: string; - readonly allPackageVersionList: string; -} -export declare class ActionPackageName implements PackageName { - readonly name: string; - readonly version?: string | undefined; - constructor(name: string, version?: string | undefined); - serialize(): string; -} -export declare function parseBoolean(value: string, fieldName: string): boolean; -export declare function normalizeInputPackages(inputPackages: string): string[]; -export declare class ActionRunner { - private readonly commandRunner; - private readonly tar; - private readonly logger; - constructor(commandRunner: CommandRunner, tarModule: TarModule, logger: winston.Logger); - parseBoolean(value: string, fieldName: string): boolean; - normalizeInputPackages(inputPackages: string): string[]; - resolvePackageVersion(packageManager: PackageManager, packageName: string): Promise; - normalizePackagesWithVersions(packageManager: PackageManager, inputPackages: string): Promise; - validateEmptyPackages(behavior: EmptyPackageBehavior, packages: string[]): void; - getCacheRoot(): string; - getCacheKey(normalizedPackages: string[], version: string): Promise; - findInstallScript(packageName: string, extension: "preinst" | "postinst", root: string): string | undefined; - tarRelativePath(filePath: string): string; - buildFileListForPackage(packageManager: PackageManager, packageName: string): Promise; - updateAptLists(packageManager: PackageManager): Promise; - packageSpecifierToName(packageSpecifier: string): string; - installAndCachePackages(cacheDir: string, packages: string[], packageManager: PackageManager): Promise; - restorePackages(cacheDir: string, executeInstallScripts: boolean): Promise; - runAction(inputs: ActionInputs): Promise; -} -export declare function runAction(inputs: ActionInputs, logger: winston.Logger): Promise; -export {}; diff --git a/dist/action.js b/dist/action.js deleted file mode 100644 index 73141c7..0000000 --- a/dist/action.js +++ /dev/null @@ -1,265 +0,0 @@ -import * as cache from "@actions/cache"; -import crypto from "node:crypto"; -import fs from "node:fs"; -import os from "node:os"; -import path from "node:path"; -import { createPackageManager, DefaultCommandRunner, } from "../../ts-apt/dist/index.js"; -import { isAptListsFresh } from "./io.js"; -import { readManifestAsCsv, writeManifest } from "./manifest.js"; -import * as tar from "tar"; -const FORCE_UPDATE_INCREMENT = "3"; -const CACHE_DIRNAME = "cache-apt-pkgs"; -const CACHE_PREFIX = "cache-apt-pkgs_"; -export class ActionPackageName { - name; - version; - constructor(name, version) { - this.name = name; - this.version = version; - } - serialize() { - return this.version ? `${this.name}=${this.version}` : this.name; - } -} -function toPackageName(packageSpecifier) { - const [name, version] = packageSpecifier.split("="); - if (!name) { - throw new Error("Package name cannot be empty."); - } - return new ActionPackageName(name, version); -} -export function parseBoolean(value, fieldName) { - if (value === "true") { - return true; - } - if (value === "false") { - return false; - } - throw new Error(`${fieldName} value '${value}' must be either true or false.`); -} -export function normalizeInputPackages(inputPackages) { - return inputPackages - .replace(/[,\\]/g, " ") - .replace(/\s+/g, " ") - .trim() - .split(" ") - .map((part) => part.trim()) - .filter(Boolean) - .sort((a, b) => a.localeCompare(b)); -} -export class ActionRunner { - commandRunner; - tar; - logger; - constructor(commandRunner, tarModule, logger) { - this.commandRunner = commandRunner; - this.tar = tarModule; - this.logger = logger; - } - parseBoolean(value, fieldName) { - return parseBoolean(value, fieldName); - } - normalizeInputPackages(inputPackages) { - return normalizeInputPackages(inputPackages); - } - async resolvePackageVersion(packageManager, packageName) { - const packageInfo = await packageManager.getPackageInfo([ - toPackageName(packageName), - ]); - const version = packageInfo[0]?.version; - if (!version) { - throw new Error(`Unable to resolve package version for '${packageName}'.`); - } - return version; - } - async normalizePackagesWithVersions(packageManager, inputPackages) { - const raw = this.normalizeInputPackages(inputPackages); - const packages = await Promise.all(raw.map(async (pkg) => { - if (pkg.includes("=")) { - return pkg; - } - return `${pkg}=${await this.resolvePackageVersion(packageManager, pkg)}`; - })); - return packages.sort((a, b) => a.localeCompare(b)); - } - validateEmptyPackages(behavior, packages) { - if (packages.length > 0) { - return; - } - if (behavior === "ignore") { - return; - } - if (behavior === "warn") { - process.stdout.write("::warning::Packages argument is empty.\n"); - return; - } - throw new Error("Packages argument is empty."); - } - getCacheRoot() { - return path.join(os.homedir(), CACHE_DIRNAME); - } - async getCacheKey(normalizedPackages, version) { - const architecture = (await this.commandRunner.run("arch")).stdout.trim(); - let value = `${normalizedPackages.join(" ")} @ ${version} ${FORCE_UPDATE_INCREMENT}`; - if (architecture !== "x86_64") { - value = `${value} ${architecture}`; - } - const hash = crypto.createHash("md5").update(value).digest("hex"); - return `${CACHE_PREFIX}${hash}`; - } - findInstallScript(packageName, extension, root) { - const scriptsDir = path.join(root, "var", "lib", "dpkg", "info"); - if (!fs.existsSync(scriptsDir)) { - return undefined; - } - const pattern = new RegExp(`^${packageName}(:.*)?\\.${extension}$`); - const matches = fs - .readdirSync(scriptsDir) - .filter((entry) => pattern.test(entry)) - .sort((a, b) => a.localeCompare(b)); - const candidate = matches[0]; - if (!candidate) { - return undefined; - } - return path.join(scriptsDir, candidate); - } - tarRelativePath(filePath) { - return filePath.startsWith("/") ? filePath.slice(1) : filePath; - } - async buildFileListForPackage(packageManager, packageName) { - const files = (await packageManager.listInstalledFiles(toPackageName(packageName))) - .filter((filePath) => { - if (!fs.existsSync(filePath)) { - return false; - } - const stat = fs.lstatSync(filePath); - return stat.isFile() || stat.isSymbolicLink(); - }) - .map(this.tarRelativePath); - const preinst = this.findInstallScript(packageName, "preinst", "/"); - const postinst = this.findInstallScript(packageName, "postinst", "/"); - if (preinst) { - files.push(this.tarRelativePath(preinst)); - } - if (postinst) { - files.push(this.tarRelativePath(postinst)); - } - return Array.from(new Set(files)).sort((a, b) => a.localeCompare(b)); - } - async updateAptLists(packageManager) { - if (isAptListsFresh()) { - return; - } - await packageManager.update(); - } - packageSpecifierToName(packageSpecifier) { - return packageSpecifier.split("=")[0] ?? packageSpecifier; - } - async installAndCachePackages(cacheDir, packages, packageManager) { - await this.updateAptLists(packageManager); - writeManifest(path.join(cacheDir, "manifest_main.log"), packages); - const installedPackages = await packageManager.install(packages.map(toPackageName)); - const manifestAll = []; - for (const pkg of installedPackages) { - const packageName = pkg.name; - const packageVersion = pkg.version; - if (!packageName || !packageVersion) { - continue; - } - const archivePath = path.join(cacheDir, `${packageName}=${packageVersion}.tar`); - if (!fs.existsSync(archivePath)) { - const filesToArchive = await this.buildFileListForPackage(packageManager, packageName); - await this.tar.create({ - cwd: "/", - file: archivePath, - portable: false, - preservePaths: false, - follow: false, - noDirRecurse: false, - }, filesToArchive); - } - manifestAll.push(`${packageName}=${packageVersion}`); - } - writeManifest(path.join(cacheDir, "manifest_all.log"), manifestAll); - } - async restorePackages(cacheDir, executeInstallScripts) { - const archives = fs - .readdirSync(cacheDir) - .filter((entry) => entry.endsWith(".tar")) - .sort((a, b) => a.localeCompare(b)); - for (const archive of archives) { - const archivePath = path.join(cacheDir, archive); - await this.tar.extract({ - cwd: "/", - file: archivePath, - preservePaths: true, - }); - if (!executeInstallScripts) { - continue; - } - const packageName = archive.split("=")[0] ?? ""; - if (!packageName) { - continue; - } - const preinst = this.findInstallScript(packageName, "preinst", "/"); - if (preinst) { - this.logger.info(`Running pre-install script for ${packageName}`); - await this.commandRunner.run("sudo", ["sh", "-x", preinst, "install"]); - } - const postinst = this.findInstallScript(packageName, "postinst", "/"); - if (postinst) { - this.logger.info(`Running post-install script for ${packageName}`); - await this.commandRunner.run("sudo", [ - "sh", - "-x", - postinst, - "configure", - ]); - } - } - } - async runAction(inputs) { - if (/\s/.test(inputs.version)) { - throw new Error(`Version value '${inputs.version}' cannot contain spaces.`); - } - const packageInfoManager = await createPackageManager(false); - const normalizedPackages = await this.normalizePackagesWithVersions(packageInfoManager, inputs.packages); - this.validateEmptyPackages(inputs.emptyPackagesBehavior, normalizedPackages); - const cacheDir = this.getCacheRoot(); - fs.mkdirSync(cacheDir, { recursive: true }); - if (normalizedPackages.length === 0) { - writeManifest(path.join(cacheDir, "manifest_main.log"), []); - writeManifest(path.join(cacheDir, "manifest_all.log"), []); - return { - cacheHit: false, - packageVersionList: "", - allPackageVersionList: "", - }; - } - const key = await this.getCacheKey(normalizedPackages, inputs.version); - fs.writeFileSync(path.join(cacheDir, "cache_key.md5"), key.replace(CACHE_PREFIX, ""), "utf8"); - const restoredKey = await cache.restoreCache([cacheDir], key); - const cacheHit = restoredKey === key; - if (cacheHit) { - await this.restorePackages(cacheDir, inputs.executeInstallScripts); - } - else { - const installManager = await createPackageManager(true); - const installTargets = normalizedPackages.map((packageSpecifier) => this.packageSpecifierToName(packageSpecifier)); - await this.installAndCachePackages(cacheDir, installTargets, installManager); - await cache.saveCache([cacheDir], key); - } - return { - cacheHit, - packageVersionList: readManifestAsCsv(path.join(cacheDir, "manifest_main.log")), - allPackageVersionList: readManifestAsCsv(path.join(cacheDir, "manifest_all.log")), - }; - } -} -export async function runAction(inputs, logger) { - const packageManager = (await createPackageManager(true, logger, logger)); - const commandRunner = new DefaultCommandRunner(logger, logger); - const actionRunner = new ActionRunner(commandRunner, tar, logger); - return await actionRunner.runAction(inputs); -} -//# sourceMappingURL=action.js.map \ No newline at end of file diff --git a/dist/action.js.map b/dist/action.js.map deleted file mode 100644 index 2318be2..0000000 --- a/dist/action.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 4e4f95a..0000000 --- a/dist/index.js +++ /dev/null @@ -1,41 +0,0 @@ -import * as core from "@actions/core"; -import { parseBoolean, runAction } from "./action.js"; -import winston from "winston"; -function parseEmptyPackagesBehavior(value) { - if (value === "error" || value === "warn" || value === "ignore") { - return value; - } - throw new Error(`empty_packages_behavior value '${value}' must be one of: error, warn, ignore.`); -} -function getInputs() { - const executeInstallScriptsRaw = core.getInput("execute_install_scripts"); - const debugRaw = core.getInput("debug"); - const emptyPackagesBehaviorRaw = core.getInput("empty_packages_behavior") || "error"; - return { - packages: core.getInput("packages", { required: true }), - version: core.getInput("version"), - executeInstallScripts: parseBoolean(executeInstallScriptsRaw, "execute_install_scripts"), - emptyPackagesBehavior: parseEmptyPackagesBehavior(emptyPackagesBehaviorRaw), - debug: parseBoolean(debugRaw, "debug"), - }; -} -async function main() { - try { - const inputs = getInputs(); - const logger = winston.createLogger({ - level: inputs.debug ? "debug" : "info", - format: winston.format.combine(winston.format.colorize(), winston.format.printf(({ level, message }) => `${level}: ${message}`)), - transports: [new winston.transports.Console()], - }); - const outputs = await runAction(inputs, logger); - core.setOutput("cache-hit", String(outputs.cacheHit)); - core.setOutput("package-version-list", outputs.packageVersionList); - core.setOutput("all-package-version-list", outputs.allPackageVersionList); - } - catch (error) { - const message = error instanceof Error ? error.message : String(error); - core.setFailed(message); - } -} -void main(); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 07d9c0c..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AACzE,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,SAAS,0BAA0B,CACjC,KAAa;IAEb,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,wCAAwC,CAChF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,wBAAwB,GAC5B,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,OAAO,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjC,qBAAqB,EAAE,YAAY,CACjC,wBAAwB,EACxB,yBAAyB,CAC1B;QACD,qBAAqB,EAAE,0BAA0B,CAAC,wBAAwB,CAAC;QAC3E,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CACtE;YACD,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/io.d.ts b/dist/io.d.ts deleted file mode 100644 index 34ad1e5..0000000 --- a/dist/io.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { type CommandRunner } from "../../ts-apt/dist/index.js"; -export declare function isAptListsFresh(): boolean; -export declare class Package { - readonly name: string; - readonly version: string; - constructor(name: string, version: string); - serialize(): string; -} -export declare class CacheKey { - readonly version: string; - readonly forceUpdateIncrement: string; - readonly arch: string; - readonly normalizedPackages: string[]; - constructor(version: string, forceUpdateIncrement: string, arch: string, normalizedPackages: string[]); - serialize(): string; -} -export declare function deserializeCacheKey(serialized: string): CacheKey; -export declare class Cache { - private readonly cachePath; - private readonly commandRunner; - constructor(cacheDir: string | undefined, commandRunner: CommandRunner); - getKey(normalizedPackages: string[], version: string): Promise; -} diff --git a/dist/io.js b/dist/io.js deleted file mode 100644 index a6ad9cd..0000000 --- a/dist/io.js +++ /dev/null @@ -1,88 +0,0 @@ -import * as fs from "fs"; -import * as path from "path"; -import * as crypto from "crypto"; -import * as os from "os"; -export function isAptListsFresh() { - const aptListsPath = "/var/lib/apt/lists"; - const maxDepth = 5; - function search(currentPath, currentDepth) { - if (currentDepth > maxDepth) - return false; - try { - const stats = fs.statSync(currentPath); - if (stats.isDirectory()) { - const entries = fs.readdirSync(currentPath); - for (const entry of entries) { - const fullPath = path.join(currentPath, entry); - if (search(fullPath, currentDepth + 1)) { - return true; - } - } - } - else { - return true; - } - } - catch (error) { - // Ignore permission errors or inaccessible paths - } - return false; - } - return search(aptListsPath, 0); -} -export class Package { - name; - version; - constructor(name, version) { - this.name = name; - this.version = version; - } - serialize() { - return `${this.name}@${this.version}`; - } -} -const FORCE_UPDATE_INCREMENT = "4"; -const CACHE_DIRNAME = "cache-apt-pkgs"; -const CACHE_PREFIX = "cache-apt-pkgs_"; -export class CacheKey { - version; - forceUpdateIncrement; - arch; - normalizedPackages; - constructor(version, forceUpdateIncrement, arch, normalizedPackages) { - this.version = version; - this.forceUpdateIncrement = forceUpdateIncrement; - this.arch = arch; - this.normalizedPackages = normalizedPackages; - } - serialize() { - return `${this.version}|${this.forceUpdateIncrement}|${this.arch}|${this.normalizedPackages.join(",")}`; - } -} -export function deserializeCacheKey(serialized) { - const parts = serialized.split("|"); - if (parts.length !== 4) { - throw new Error(`Invalid serialized cache key: ${serialized}`); - } - const [version, forceUpdateIncrement, arch, normalizedPackagesStr] = parts; - const normalizedPackages = normalizedPackagesStr.split(","); - return new CacheKey(version, forceUpdateIncrement, arch, normalizedPackages); -} -export class Cache { - cachePath; - commandRunner; - constructor(cacheDir = CACHE_DIRNAME, commandRunner) { - this.cachePath = path.join(os.homedir(), cacheDir); - this.commandRunner = commandRunner; - } - async getKey(normalizedPackages, version) { - const architecture = await (await this.commandRunner.run("arch")).stdout.trim(); - let value = `${normalizedPackages.join(" ")} @ ${version} ${FORCE_UPDATE_INCREMENT}`; - if (architecture !== "x86_64") { - value = `${value} ${architecture}`; - } - const hash = crypto.createHash("md5").update(value).digest("hex"); - return `${CACHE_PREFIX}${hash}`; - } -} -//# sourceMappingURL=io.js.map \ No newline at end of file diff --git a/dist/io.js.map b/dist/io.js.map deleted file mode 100644 index 0330608..0000000 --- a/dist/io.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/manifest.d.ts b/dist/manifest.d.ts deleted file mode 100644 index 2ac7c32..0000000 --- a/dist/manifest.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function writeManifest(filePath: string, entries: string[]): void; -export declare function readManifestAsCsv(filePath: string): string; diff --git a/dist/manifest.js b/dist/manifest.js deleted file mode 100644 index fa67408..0000000 --- a/dist/manifest.js +++ /dev/null @@ -1,17 +0,0 @@ -import fs from "node:fs"; -export function writeManifest(filePath, entries) { - const normalized = [...entries].filter(Boolean).sort((a, b) => a.localeCompare(b)); - fs.writeFileSync(filePath, normalized.join("\n"), "utf8"); -} -export function readManifestAsCsv(filePath) { - if (!fs.existsSync(filePath)) { - return ""; - } - return fs - .readFileSync(filePath, "utf8") - .split(/\r?\n/) - .map((line) => line.trim()) - .filter(Boolean) - .join(","); -} -//# sourceMappingURL=manifest.js.map \ No newline at end of file diff --git a/dist/manifest.js.map b/dist/manifest.js.map deleted file mode 100644 index 5e68b1b..0000000 --- a/dist/manifest.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAiB;IAC/D,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,EAAE;SACN,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC9B,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/dist/shell.d.ts b/dist/shell.d.ts deleted file mode 100644 index dc77c8e..0000000 --- a/dist/shell.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { type SpawnSyncOptions } from "node:child_process"; -export interface CommandResult { - readonly status: number; - readonly stdout: string; - readonly stderr: string; -} -export declare function runCommand(command: string, args?: string[], options?: SpawnSyncOptions): CommandResult; -export declare function runCommandOrThrow(command: string, args?: string[], options?: SpawnSyncOptions): CommandResult; -export declare function fileIsFresh(path: string, withinMinutes: number): boolean; diff --git a/dist/shell.js b/dist/shell.js deleted file mode 100644 index 1fcdc0d..0000000 --- a/dist/shell.js +++ /dev/null @@ -1,46 +0,0 @@ -import { spawnSync } from "node:child_process"; -import fs from "node:fs"; -export function runCommand(command, args = [], options = {}) { - const result = spawnSync(command, args, { - encoding: "utf8", - ...options, - }); - const stdout = typeof result.stdout === "string" - ? result.stdout - : result.stdout - ? result.stdout.toString("utf8") - : ""; - const stderr = typeof result.stderr === "string" - ? result.stderr - : result.stderr - ? result.stderr.toString("utf8") - : ""; - return { - status: result.status ?? 1, - stdout, - stderr, - }; -} -export function runCommandOrThrow(command, args = [], options = {}) { - const result = runCommand(command, args, options); - if (result.status !== 0) { - throw new Error([ - `Command failed: ${command} ${args.join(" ")}`, - `exit: ${result.status}`, - result.stdout ? `stdout:\n${result.stdout.trim()}` : "", - result.stderr ? `stderr:\n${result.stderr.trim()}` : "", - ] - .filter(Boolean) - .join("\n")); - } - return result; -} -export function fileIsFresh(path, withinMinutes) { - if (!fs.existsSync(path)) { - return false; - } - const stat = fs.statSync(path); - const maxAgeMs = withinMinutes * 60 * 1000; - return Date.now() - stat.mtimeMs <= maxAgeMs; -} -//# sourceMappingURL=shell.js.map \ No newline at end of file diff --git a/dist/shell.js.map b/dist/shell.js.map deleted file mode 100644 index 48751c0..0000000 --- a/dist/shell.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQzB,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,OAAiB,EAAE,EACnB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,QAAQ,EAAE,MAAM;QAChB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,CAAC,CAAC,MAAM,CAAC,MAAM;YACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,CAAC,CAAC,MAAM,CAAC,MAAM;YACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC;IAEX,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;QAC1B,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,OAAiB,EAAE,EACnB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb;YACE,mBAAmB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC9C,SAAS,MAAM,CAAC,MAAM,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;SACxD;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,aAAqB;IAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;AAC/C,CAAC"} \ No newline at end of file