aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authoraxtloss <axtlos@getcryst.al>2024-01-27 19:07:09 +0100
committeraxtloss <axtlos@getcryst.al>2024-01-27 19:07:09 +0100
commit158e9d6eb8a74bc6ce3c3f2a9709de081568dc02 (patch)
tree607a25db5c5764fe7f10a746aee1a4e9420e8d81 /cmd
parent1b50046a214d81fe98c94a1220f7cbc1eeac669b (diff)
downloadfsverify-158e9d6eb8a74bc6ce3c3f2a9709de081568dc02.tar.gz
fsverify-158e9d6eb8a74bc6ce3c3f2a9709de081568dc02.tar.bz2
Add go project
Signed-off-by: axtloss <axtlos@getcryst.al>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/root.go22
-rw-r--r--cmd/verify.go32
2 files changed, 54 insertions, 0 deletions
diff --git a/cmd/root.go b/cmd/root.go
new file mode 100644
index 0000000..d212e4e
--- /dev/null
+++ b/cmd/root.go
@@ -0,0 +1,22 @@
+package cmd
+
+import (
+ "github.com/spf13/cobra"
+ "os"
+)
+
+var rootCmd = &cobra.Command{
+ Use: "fsverify",
+}
+
+func init() {
+ rootCmd.AddCommand(NewVerifyCommand())
+}
+
+func Execute() {
+ // cobra does not exit with a non-zero return code when failing
+ // solution from https://github.com/spf13/cobra/issues/221
+ if err := rootCmd.Execute(); err != nil {
+ os.Exit(1)
+ }
+}
diff --git a/cmd/verify.go b/cmd/verify.go
new file mode 100644
index 0000000..3ceabbe
--- /dev/null
+++ b/cmd/verify.go
@@ -0,0 +1,32 @@
+package cmd
+
+import (
+ "github.com/axtloss/fsverify/core"
+ "github.com/spf13/cobra"
+)
+
+func NewVerifyCommand() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "verify",
+ Short: "Verify the root filesystem based on the given verification",
+ RunE: ValidateCommand,
+ SilenceUsage: true,
+ }
+
+ return cmd
+}
+
+func ValidateCommand(_ *cobra.Command, args []string) error {
+ node := core.Node{
+ BlockStart: 0,
+ BlockEnd: 4 * 1000,
+ BlockSum: "test",
+ PrevNodeSum: "aaaa",
+ }
+ err := core.AddNode(node, nil)
+ if err != nil {
+ return err
+ }
+ _, err = core.ReadHeader("./test.part")
+ return err
+}