import { ensureFileSync, ensureDirSync, download, wait } from "../deps.ts"; import S3Files from "../src/generated/s3.ts"; if (!S3Files) { throw new Error('This File depends on the Index generated by "vr s3", please run that and try again.') } const IMAGE_FOLDER_NAME = 'dreamland-assets' const ImageSpinner = wait({ text: 'Downloading Files from S3...', spinner: 'aesthetic' }) async function downloadFiles(Files: typeof S3Files) { ensureDirSync(`../src/generated/${IMAGE_FOLDER_NAME}`) try { await Files.forEach(async (file) => { ImageSpinner.text = `Downloading ${file.key}` ensureFileSync(`./src/generated/${IMAGE_FOLDER_NAME}/${file.key}`) return await download(file.url, { dir: `./src/generated/${IMAGE_FOLDER_NAME}`, file: file.key, }) }) } catch (error) { return console.error(error) } } if (import.meta.main) { try { await downloadFiles(S3Files) } catch (error) { console.error(error) ImageSpinner.fail("Something went wrong.") Deno.exit(1) } ImageSpinner.succeed("Downloaded Files from S3.") Deno.exit(0) }