handle windows setup

This commit is contained in:
2025-07-29 08:26:36 -05:00
parent c5fe05d4fc
commit 515b1d1fcb
3 changed files with 31 additions and 27 deletions

View File

@@ -21,16 +21,20 @@ const s3 = new S3Client({
}); });
const cleanOldItems = async () => { const cleanOldItems = async () => {
console.log("cleanOldItems", oldItems.length); console.log(`cleaning|count|${oldItems.length}`);
while (oldItems.length > 0) { while (oldItems.length > 0) {
const key = oldItems.pop(); try {
await s3.send( const key = oldItems.pop();
new DeleteObjectCommand({ console.log(`cleaning|key|${key}`);
Bucket: BUCKET, await s3.send(
Key: key, new DeleteObjectCommand({
}), Bucket: BUCKET,
); Key: key,
console.log(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) => { const getBucketFiles = async (folderName) => {
try { try {
folderName = folderName.toLowerCase(); folderName = folderName.toLowerCase();
@@ -88,8 +82,9 @@ const getBucketFiles = async (folderName) => {
return a.sort > b.sort ? -1 : a.sort < b.sort ? 1 : 0; return a.sort > b.sort ? -1 : a.sort < b.sort ? 1 : 0;
}); });
const itemCount = {}; const itemCount = {};
const ext = ".tar.gz";
const filteredItems = ret const filteredItems = ret
.filter((item) => item.name.endsWith(".tar.gz")) .filter((item) => item.name.endsWith(ext))
.filter((item) => { .filter((item) => {
if (folderName === "nightly") { if (folderName === "nightly") {
const parts = item.name.split("_"); const parts = item.name.split("_");
@@ -102,6 +97,15 @@ const getBucketFiles = async (folderName) => {
oldItems.push(item.key); oldItems.push(item.key);
oldItems.push(item.key + ".sha256"); oldItems.push(item.key + ".sha256");
oldItems.push(item.key + ".sig"); 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; return false;
} }
@@ -118,7 +122,7 @@ const getBucketFiles = async (folderName) => {
} }
return filteredItems; return filteredItems;
} catch (err) { } catch (err) {
console.log(err); console.error(err);
} }
return []; return [];

View File

@@ -7,12 +7,12 @@ import logger from "morgan";
import indexRouter from "./routes/index"; import indexRouter from "./routes/index";
if (!process.env.R_AWS_KEY) { 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); process.exit(-1);
} }
if (!process.env.R_AWS_SECRET) { 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); process.exit(-2);
} }

View File

@@ -67,13 +67,13 @@ setInterval(
for (const stage of stages) { for (const stage of stages) {
try { try {
await getBucketFiles(stage); await getBucketFiles(stage);
} catch (e) { } catch (err) {
console.log(e); console.error(err);
} }
} }
await cleanOldItems(); await cleanOldItems();
} catch (e) { } catch (err) {
console.log(e); console.error(err);
} }
}, },
15 * 60 * 1000, 15 * 60 * 1000,