38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { version } from "../version.ts";
|
|
|
|
export async function upgradeCommand() {
|
|
console.log("Now going to attempt an upgrade...");
|
|
|
|
const p = Deno.run({
|
|
cmd: ["deno", "cache", "--reload", Deno.mainModule],
|
|
});
|
|
const exitCode = await p.status();
|
|
if (!exitCode.success) {
|
|
console.error("Something went wrong there...");
|
|
Deno.exit(1);
|
|
}
|
|
console.log(
|
|
"So, that's done. Now let's see if this actually did anything...",
|
|
);
|
|
const vp = Deno.run({
|
|
cmd: ["deno", "run", "-A", "--unstable", Deno.mainModule, "version"],
|
|
stdout: "piped",
|
|
});
|
|
const versionStatus = await vp.status();
|
|
if (!versionStatus.success) {
|
|
console.error("Could not run version command, something is wrong.");
|
|
Deno.exit(1);
|
|
}
|
|
const rawVersion = await vp.output();
|
|
const newVersion = new TextDecoder().decode(rawVersion).trim();
|
|
if (newVersion === version) {
|
|
console.log(
|
|
`Nope. I hate to tell you this, but it looks like we're still running ${newVersion} This was a bit of a futile exercise. Let's try again soon some time.`,
|
|
);
|
|
} else {
|
|
console.log(
|
|
`Congrats, we've upgraded you from ${version} to ${newVersion}. Seems like quite bump, enjoy! https://silverbullet.md/changelog/ may give you more hints on what's new.`,
|
|
);
|
|
}
|
|
}
|