dreamland/scripts/download.ts
2022-10-12 20:40:03 +02:00

44 lines
No EOL
1.2 KiB
TypeScript

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)
}