// This is a JS script so that the directory is created in-process on Windows.
// If the script isn't run in-process, there's a risk of it racing or never running
// due to file associations in Windows.
// Sorry.

const fs = require("fs");
const path = require("path");
const { mkdirpSync } = require("mkdirp");
const fetch = require("node-fetch");
const ProxyAgent = require("simple-proxy-agent");

console.log("Making webapp directory");
mkdirpSync("webapp");

// curl -s https://meet.element.io/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js
console.log("Downloading Jitsi script");
const fname = path.join("webapp", "jitsi_external_api.min.js");

const options = {};
if (process.env.HTTPS_PROXY) {
    options.agent = new ProxyAgent(process.env.HTTPS_PROXY, { tunnel: true });
}

fetch("https://meet.element.io/libs/external_api.min.js", options)
    .then((res) => {
        const stream = fs.createWriteStream(fname);
        return new Promise((resolve, reject) => {
            res.body.pipe(stream);
            res.body.on("error", (err) => reject(err));
            res.body.on("finish", () => resolve());
        });
    })
    .then(() => console.log("Done with Jitsi download"));