summaryrefslogtreecommitdiff
path: root/cmd/mkbackup/mkbackup.ha
diff options
context:
space:
mode:
authorAlejandro Sior <aho@sior.be>2022-06-21 15:38:48 +0200
committerAlejandro Sior <aho@sior.be>2022-06-21 15:38:48 +0200
commitf42a480cbe487fc5fb9b3772990e80926201f6e4 (patch)
treed6af05ea6942732fafa721c97895b66cd42298b3 /cmd/mkbackup/mkbackup.ha
parentd000a6edf4ad9fcc2302a80080fdbebb23fb7378 (diff)
gptman: reorganize commands in a cmd module
Diffstat (limited to 'cmd/mkbackup/mkbackup.ha')
-rw-r--r--cmd/mkbackup/mkbackup.ha23
1 files changed, 23 insertions, 0 deletions
diff --git a/cmd/mkbackup/mkbackup.ha b/cmd/mkbackup/mkbackup.ha
new file mode 100644
index 0000000..12093b5
--- /dev/null
+++ b/cmd/mkbackup/mkbackup.ha
@@ -0,0 +1,23 @@
+use fmt;
+use io;
+
+use cmd;
+use gpt;
+
+export fn mkbackup(vol: str, args: []str) void = {
+ const vol = cmd::openvol(vol);
+ const vol = match(gpt::from(vol)) {
+ case let g: *gpt::gpt =>
+ yield g;
+ case gpt::nogpt =>
+ fmt::fatalf("{}: disk does not have valid gpt", args[0]);
+ case =>
+ fmt::fatalf("{}: could not access volume", args[0]);
+ };
+ defer {
+ gpt::commit(vol)!;
+ gpt::finish(vol);
+ };
+
+ gpt::mkbackup(vol);
+};