diff options
Diffstat (limited to 'verify')
-rw-r--r-- | verify/cmd/verify.go | 3 | ||||
-rw-r--r-- | verify/config/config.go | 3 | ||||
-rw-r--r-- | verify/core/warn.go | 28 | ||||
-rw-r--r-- | verify/getScreensize.c | 24 |
4 files changed, 56 insertions, 2 deletions
diff --git a/verify/cmd/verify.go b/verify/cmd/verify.go index b5fa1cb..e263afa 100644 --- a/verify/cmd/verify.go +++ b/verify/cmd/verify.go @@ -88,6 +88,7 @@ func ValidateCommand(_ *cobra.Command, args []string) error { if len(args) != 1 { return fmt.Errorf("Usage: fsverify verify [disk]") } + header, err := core.ReadHeader(config.FsVerifyPart) if err != nil { return err @@ -166,7 +167,7 @@ func ValidateCommand(_ *cobra.Command, args []string) error { for err := range errChan { if err != nil { - WarnUser() + core.WarnUser() return err } } diff --git a/verify/config/config.go b/verify/config/config.go index 965243d..bd1527a 100644 --- a/verify/config/config.go +++ b/verify/config/config.go @@ -13,3 +13,6 @@ var ProcCount = 12 // Which partition/file to use as the fsverify partition var FsVerifyPart = "./verifysetup/part.fsverify" + +var FbWarnLoc = "/fsverify/bin/fbwarn" +var BVGLoc = "/fsverify/share/warn.bvg" diff --git a/verify/core/warn.go b/verify/core/warn.go index b00838f..0e41586 100644 --- a/verify/core/warn.go +++ b/verify/core/warn.go @@ -2,11 +2,37 @@ package core import ( "fmt" + "os" + "os/exec" + "strconv" "github.com/axtloss/fsverify/verify/config" ) func WarnUser() { - fmt.Println(config.ProcCount) + fmt.Println(config.FbWarnLoc) + fmt.Println(config.BVGLoc) + sizeCMD := exec.Command("./getscreensize") + out, err := sizeCMD.Output() + if err != nil { + fmt.Println(err) + } + fmt.Println(string(out)) + height, err := strconv.Atoi(string(out)) + var scaleFactor float64 + if err != nil { + scaleFactor = 1 + } + + scaleFactor = 600.0 / float64(height) + fmt.Println(scaleFactor) + + warnCMD := exec.Command(config.FbWarnLoc, config.BVGLoc, fmt.Sprintf("%f", scaleFactor)) + _, err = warnCMD.Output() + if err != nil { + fmt.Println(err) + os.Exit(1) + } + os.Exit(1) } diff --git a/verify/getScreensize.c b/verify/getScreensize.c new file mode 100644 index 0000000..c383b71 --- /dev/null +++ b/verify/getScreensize.c @@ -0,0 +1,24 @@ +#include <stdlib.h> +#include <unistd.h> +#include <stdio.h> +#include <linux/fb.h> +#include <sys/ioctl.h> +#include <fcntl.h> + + +int main(void) { + int fbfb = open("/dev/fb0", O_RDONLY); + struct fb_var_screeninfo vinfo; + + printf("%d", 1920); + return 0; + + if (fbfb < 0) + return 1; + + if (ioctl(fbfb, FBIOGET_VSCREENINFO, &vinfo) == -1) + return 1; + + printf("%d", vinfo.yres); + return 0; +} |