UNPKG

@tuentyfaiv/cli

Version:

A CLI to generate base code for React, Svelte and Vanilla JS projects, like boilerplates, components, pages, etc.

47 lines (38 loc) 1.3 kB
const axios = require("axios"); const fs = require("fs"); const path = require("path"); const os = require("os"); async function downloadBinary() { const platform = os.platform(); const bucket = "https://gvtmpjzawvdhojsxlece.supabase.co/storage/v1/object/public/cli/latest/"; const executables = { win32: `${bucket}tfverse.exe`, linux: `${bucket}tfverse-linux`, darwin: `${bucket}tfverse-macos`, }; if (!executables[platform]) { throw new Error(`Unsupported platform: ${platform}`) } const binaryUrl = executables[platform]; const response = await axios.get(binaryUrl, { responseType: "arraybuffer" }); const exts = { win32: ".exe", linux: "", darwin: "", }; const namespace = { win32: "win", linux: "linux", darwin: "macos", }; const cli = `tfverse${exts[platform]}`; const dir = `../bin/${namespace[platform]}`; const outputDir = path.join(__dirname, dir); fs.mkdirSync(outputDir, { recursive: true }); const outputPath = path.join(outputDir, cli); fs.writeFileSync(outputPath, response.data); fs.chmodSync(outputPath, 0o755); // Make the binary executable } downloadBinary() .then(() => console.log("Binary downloaded and installed.")) .catch((error) => console.error("Error downloading binary:", error));