46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { run } from "@silverbulletmd/plugos-syscall/shell";
|
|
import { flashNotification, prompt } from "@silverbulletmd/plugos-silverbullet-syscall/editor";
|
|
import { invokeFunction } from "@silverbulletmd/plugos-silverbullet-syscall/system";
|
|
|
|
export async function commit(message?: string) {
|
|
if (!message) {
|
|
message = "Snapshot";
|
|
}
|
|
console.log(
|
|
"Snapshotting the current space to git with commit message",
|
|
message
|
|
);
|
|
await run("git", ["add", "./*.md"]);
|
|
try {
|
|
await run("git", ["commit", "-a", "-m", message]);
|
|
} catch (e) {
|
|
// We can ignore, this happens when there's no changes to commit
|
|
}
|
|
console.log("Done!");
|
|
}
|
|
|
|
export async function snapshotCommand() {
|
|
let revName = await prompt(`Revision name:`);
|
|
if (!revName) {
|
|
revName = "Snapshot";
|
|
}
|
|
console.log("Revision name", revName);
|
|
await invokeFunction("server", "commit", revName);
|
|
}
|
|
|
|
export async function syncCommand() {
|
|
await flashNotification("Syncing with git");
|
|
await invokeFunction("server", "sync");
|
|
await flashNotification("Git sync complete!");
|
|
}
|
|
|
|
export async function sync() {
|
|
console.log("Going to sync with git");
|
|
await commit();
|
|
console.log("Then pulling from remote");
|
|
await run("git", ["pull"]);
|
|
console.log("And then pushing to remote");
|
|
await run("git", ["push"]);
|
|
console.log("Done!");
|
|
}
|