44 lines
No EOL
1.2 KiB
TypeScript
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)
|
|
} |