import { Cliffy, Colors } from "../deps.ts"; import { version } from "../version.ts"; import { requestPermOrExit } from "../helper/permission.ts"; export default async function upgrade() { await requestPermOrExit( "net", "Net permission required to fetch new version" ); const meta = await fetch( "https://deno.hibas123.de/raw/@denreg-cli/meta.json" ).then((e) => e.json()); if (meta.version === version) { const res = await Cliffy.Confirm.prompt({ message: Colors.yellow("No update available!") + " Continue?", default: false, }); if (!res) return; } const res = await Cliffy.Confirm.prompt({ message: "Are you sure you want to upgrade?", default: true, }); if (res) { const cmd = [ "deno", "install", "-A", "--unstable", "-f", `https://deno.hibas123.de/raw/@denreg-cli@${meta.version}/denreg.ts`, ]; await requestPermOrExit( "run", "Run permission required to install new version. Or run it manually: " + cmd.join(" ") ); const process = Deno.run({ cmd, }); const s = await process.status(); if (!s) { console.log(Colors.red("Upgrade failed!")); } } }