From 16678e8833030f0a8cfbfb4988548ba17bc32ee4 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Tue, 13 Sep 2022 17:53:12 -0400 Subject: [PATCH] +openssl portable (#131) --- scripts/bottle.ts | 3 ++- scripts/ls-aws-s3.ts | 47 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100755 scripts/ls-aws-s3.ts diff --git a/scripts/bottle.ts b/scripts/bottle.ts index d475ae27..b8b38e99 100755 --- a/scripts/bottle.ts +++ b/scripts/bottle.ts @@ -81,7 +81,8 @@ export async function bottle({ path: kegdir, pkg }: Installation): Promise const filelist = kegdir .join(filesListName) .write({ - text: relativePaths.join("\n") + text: relativePaths.join("\n"), + force: true }) const tarball = useCache().bottle(pkg) diff --git a/scripts/ls-aws-s3.ts b/scripts/ls-aws-s3.ts new file mode 100755 index 00000000..bc7176db --- /dev/null +++ b/scripts/ls-aws-s3.ts @@ -0,0 +1,47 @@ +#!/usr/bin/env -S tea -E + +/*--- +args: + - deno + - run + - --allow-env + - --allow-net + - --import-map={{ srcroot }}/import-map.json +---*/ + +import { S3 } from "s3" + +const sortByModified = Deno.args.includes("-m") +const reverse = Deno.args.includes("-r") + +const s3 = new S3({ + accessKeyID: Deno.env.get("AWS_ACCESS_KEY_ID")!, + secretKey: Deno.env.get("AWS_SECRET_ACCESS_KEY")!, + region: "us-east-1", +}) + +const bucket = s3.getBucket(Deno.env.get("AWS_S3_BUCKET")!) + +const output: FileInfo[] = [] + +for await(const obj of bucket.listAllObjects({ batchSize: 200 })) { + const { key, lastModified } = obj + if (!key?.match(/\.tar.gz$/)) { continue } + output.push({ key: key!, lastModified: lastModified! }) +} + +output.sort((a, b) => { + switch (sortByModified) { + case true: return a.lastModified.valueOf() - b.lastModified.valueOf() + case false: return a.key < b.key ? -1 : 1 + } +}) + +if (reverse) { output.reverse() } + +console.table(output) + +interface FileInfo { + key: string + lastModified: Date +} \ No newline at end of file