From 515b1d1fcb0f1fd4754452d446a04e3af6a72fa3 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Tue, 29 Jul 2025 08:26:36 -0500 Subject: [PATCH] handle windows setup --- src/api.js | 46 ++++++++++++++++++++++++--------------------- src/app.js | 4 ++-- src/routes/index.js | 8 ++++---- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/api.js b/src/api.js index b2cf154..08ac0db 100644 --- a/src/api.js +++ b/src/api.js @@ -21,16 +21,20 @@ const s3 = new S3Client({ }); const cleanOldItems = async () => { - console.log("cleanOldItems", oldItems.length); + console.log(`cleaning|count|${oldItems.length}`); while (oldItems.length > 0) { - const key = oldItems.pop(); - await s3.send( - new DeleteObjectCommand({ - Bucket: BUCKET, - Key: key, - }), - ); - console.log(key); + try { + const key = oldItems.pop(); + console.log(`cleaning|key|${key}`); + await s3.send( + new DeleteObjectCommand({ + Bucket: BUCKET, + Key: key, + }), + ); + } catch (err) { + console.error(err); + } } }; @@ -48,16 +52,6 @@ const createDownloadLink = async (key) => { ); }; -const getAllFiles = async () => { - const data = await s3.send( - new ListObjectsCommand({ - Bucket: BUCKET, - Delimiter: "/", - }), - ); - console.log(data); -}; - const getBucketFiles = async (folderName) => { try { folderName = folderName.toLowerCase(); @@ -88,8 +82,9 @@ const getBucketFiles = async (folderName) => { return a.sort > b.sort ? -1 : a.sort < b.sort ? 1 : 0; }); const itemCount = {}; + const ext = ".tar.gz"; const filteredItems = ret - .filter((item) => item.name.endsWith(".tar.gz")) + .filter((item) => item.name.endsWith(ext)) .filter((item) => { if (folderName === "nightly") { const parts = item.name.split("_"); @@ -102,6 +97,15 @@ const getBucketFiles = async (folderName) => { oldItems.push(item.key); oldItems.push(item.key + ".sha256"); oldItems.push(item.key + ".sig"); + + if (parts[3] === "windows") { + const setup_key = + item.key.substring(0, item.key.length - ext.length - 1) + + "_setup.exe"; + oldItems.push(setup_key); + oldItems.push(setup_key + ".sha256"); + oldItems.push(setup_key + ".sig"); + } } return false; } @@ -118,7 +122,7 @@ const getBucketFiles = async (folderName) => { } return filteredItems; } catch (err) { - console.log(err); + console.error(err); } return []; diff --git a/src/app.js b/src/app.js index 99d73ab..b3767ff 100644 --- a/src/app.js +++ b/src/app.js @@ -7,12 +7,12 @@ import logger from "morgan"; import indexRouter from "./routes/index"; if (!process.env.R_AWS_KEY) { - console.log("FATAL: 'R_AWS_KEY' environment variable is not set"); + console.error("FATAL: 'R_AWS_KEY' environment variable is not set"); process.exit(-1); } if (!process.env.R_AWS_SECRET) { - console.log("FATAL: 'R_AWS_SECRET' environment variable is not set"); + console.error("FATAL: 'R_AWS_SECRET' environment variable is not set"); process.exit(-2); } diff --git a/src/routes/index.js b/src/routes/index.js index 96daced..1f483d7 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -67,13 +67,13 @@ setInterval( for (const stage of stages) { try { await getBucketFiles(stage); - } catch (e) { - console.log(e); + } catch (err) { + console.error(err); } } await cleanOldItems(); - } catch (e) { - console.log(e); + } catch (err) { + console.error(err); } }, 15 * 60 * 1000,