for-android/scripts/download_deps.ts

333 lines
12 KiB
TypeScript

import { resolve } from "jsr:@std/path"
import { parseArgs } from "jsr:@std/cli/parse-args"
const args = parseArgs(Deno.args, {
boolean: ["yes", "y", "auto-accept"],
alias: {
"y": "yes"
}
})
const autoAccept = args.yes || args["auto-accept"]
const outputFolderParent = resolve(Deno.cwd(), "app", "src", "main", "assets")
try {
Deno.statSync(outputFolderParent)
} catch (_) {
console.error(
"\x1b[31m" + // red
"Did you run this script from the correct directory?" +
"\x1b[0m"
)
console.error(
"Usage: " +
"\x1b[35m" + // magenta
"deno run -A scripts/download_deps.ts [--yes|-y|--auto-accept]" +
"\x1b[0m" +
" from the " +
"\x1b[1;31;4m" + // bold red underline
"root" +
"\x1b[0m" +
" directory of the project."
)
Deno.exit(1)
}
const outputFolder = resolve(outputFolderParent, "embedded")
// If it exists, delete it
try {
Deno.removeSync(outputFolder, { recursive: true })
} catch (_) {
// Ignore, might not exist
}
// Create the output folder
Deno.mkdirSync(outputFolder, { recursive: true })
const deps = [
{
file: "katex.min.css",
url: "https://cdn.jsdelivr.net/npm/katex@0.16.19/dist/katex.min.css",
},
{
file: "katex.min.js",
url: "https://cdn.jsdelivr.net/npm/katex@0.16.19/dist/katex.min.js",
},
{
file: "fonts/KaTeX_AMS-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_AMS-Regular.ttf",
},
{
file: "fonts/KaTeX_AMS-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_AMS-Regular.woff",
},
{
file: "fonts/KaTeX_AMS-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_AMS-Regular.woff2",
},
{
file: "fonts/KaTeX_Caligraphic-Bold.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Caligraphic-Bold.ttf",
},
{
file: "fonts/KaTeX_Caligraphic-Bold.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Caligraphic-Bold.woff",
},
{
file: "fonts/KaTeX_Caligraphic-Bold.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Caligraphic-Bold.woff2",
},
{
file: "fonts/KaTeX_Caligraphic-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Caligraphic-Regular.ttf",
},
{
file: "fonts/KaTeX_Caligraphic-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Caligraphic-Regular.woff",
},
{
file: "fonts/KaTeX_Caligraphic-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Caligraphic-Regular.woff2",
},
{
file: "fonts/KaTeX_Fraktur-Bold.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Fraktur-Bold.ttf",
},
{
file: "fonts/KaTeX_Fraktur-Bold.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Fraktur-Bold.woff",
},
{
file: "fonts/KaTeX_Fraktur-Bold.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Fraktur-Bold.woff2",
},
{
file: "fonts/KaTeX_Fraktur-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Fraktur-Regular.ttf",
},
{
file: "fonts/KaTeX_Fraktur-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Fraktur-Regular.woff",
},
{
file: "fonts/KaTeX_Fraktur-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Fraktur-Regular.woff2",
},
{
file: "fonts/KaTeX_Main-Bold.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Bold.ttf",
},
{
file: "fonts/KaTeX_Main-Bold.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Bold.woff",
},
{
file: "fonts/KaTeX_Main-Bold.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Bold.woff2",
},
{
file: "fonts/KaTeX_Main-BoldItalic.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-BoldItalic.ttf",
},
{
file: "fonts/KaTeX_Main-BoldItalic.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-BoldItalic.woff",
},
{
file: "fonts/KaTeX_Main-BoldItalic.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-BoldItalic.woff2",
},
{
file: "fonts/KaTeX_Main-Italic.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Italic.ttf",
},
{
file: "fonts/KaTeX_Main-Italic.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Italic.woff",
},
{
file: "fonts/KaTeX_Main-Italic.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Italic.woff2",
},
{
file: "fonts/KaTeX_Main-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Regular.ttf",
},
{
file: "fonts/KaTeX_Main-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Regular.woff",
},
{
file: "fonts/KaTeX_Main-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Main-Regular.woff2",
},
{
file: "fonts/KaTeX_Math-BoldItalic.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Math-BoldItalic.ttf",
},
{
file: "fonts/KaTeX_Math-BoldItalic.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Math-BoldItalic.woff",
},
{
file: "fonts/KaTeX_Math-BoldItalic.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Math-BoldItalic.woff2",
},
{
file: "fonts/KaTeX_Math-Italic.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Math-Italic.ttf",
},
{
file: "fonts/KaTeX_Math-Italic.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Math-Italic.woff",
},
{
file: "fonts/KaTeX_Math-Italic.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Math-Italic.woff2",
},
{
file: "fonts/KaTeX_SansSerif-Bold.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Bold.ttf",
},
{
file: "fonts/KaTeX_SansSerif-Bold.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Bold.woff",
},
{
file: "fonts/KaTeX_SansSerif-Bold.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Bold.woff2",
},
{
file: "fonts/KaTeX_SansSerif-Italic.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Italic.ttf",
},
{
file: "fonts/KaTeX_SansSerif-Italic.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Italic.woff",
},
{
file: "fonts/KaTeX_SansSerif-Italic.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Italic.woff2",
},
{
file: "fonts/KaTeX_SansSerif-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Regular.ttf",
},
{
file: "fonts/KaTeX_SansSerif-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Regular.woff",
},
{
file: "fonts/KaTeX_SansSerif-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_SansSerif-Regular.woff2",
},
{
file: "fonts/KaTeX_Script-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Script-Regular.ttf",
},
{
file: "fonts/KaTeX_Script-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Script-Regular.woff",
},
{
file: "fonts/KaTeX_Script-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Script-Regular.woff2",
},
{
file: "fonts/KaTeX_Size1-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size1-Regular.ttf",
},
{
file: "fonts/KaTeX_Size1-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size1-Regular.woff",
},
{
file: "fonts/KaTeX_Size1-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size1-Regular.woff2",
},
{
file: "fonts/KaTeX_Size2-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size2-Regular.ttf",
},
{
file: "fonts/KaTeX_Size2-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size2-Regular.woff",
},
{
file: "fonts/KaTeX_Size2-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size2-Regular.woff2",
},
{
file: "fonts/KaTeX_Size3-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size3-Regular.ttf",
},
{
file: "fonts/KaTeX_Size3-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size3-Regular.woff",
},
{
file: "fonts/KaTeX_Size3-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size3-Regular.woff2",
},
{
file: "fonts/KaTeX_Size4-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size4-Regular.ttf",
},
{
file: "fonts/KaTeX_Size4-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size4-Regular.woff",
},
{
file: "fonts/KaTeX_Size4-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Size4-Regular.woff2",
},
{
file: "fonts/KaTeX_Typewriter-Regular.ttf",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Typewriter-Regular.ttf",
},
{
file: "fonts/KaTeX_Typewriter-Regular.woff",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Typewriter-Regular.woff",
},
{
file: "fonts/KaTeX_Typewriter-Regular.woff2",
url: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/fonts/KaTeX_Typewriter-Regular.woff2",
},
{
file: "micromark.bundle.js",
url: "https://esm.sh/v135/micromark@3.2.0/es2022/micromark.bundle.mjs",
},
{
file: "micromark-gfm.bundle.js",
url: "https://esm.sh/v135/micromark-extension-gfm@3.0.0/es2022/micromark-extension-gfm.bundle.mjs",
}
]
for (const dep of deps) {
console.log(`- ${dep.file} from ${dep.url}`)
}
if (!autoAccept) {
console.log("Will download the above files.")
if (!confirm("Continue?")) {
console.log("Aborted.")
Deno.exit(0)
}
} else {
console.log("Will download the above files. (auto-accepted)")
}
const fontsFolder = resolve(outputFolder, "fonts")
Deno.mkdirSync(fontsFolder, { recursive: true })
for (const dep of deps) {
const response = await fetch(dep.url)
const data = await response.arrayBuffer()
const file = resolve(outputFolder, dep.file)
Deno.writeFileSync(file, new Uint8Array(data))
console.log(`Downloaded ${dep.file} to ${file}`)
}