diff options
author | joe <rbo@gmx.us> | 2025-08-27 18:07:22 +0200 |
---|---|---|
committer | joe <rbo@gmx.us> | 2025-08-27 18:07:22 +0200 |
commit | 379671ddf93f9d5af1474dfff8e01151ae31329f (patch) | |
tree | 37b854841f456586a8efa93a0b328ffc2bf4d99a | |
parent | up (diff) | |
download | hardflip-379671ddf93f9d5af1474dfff8e01151ae31329f.tar.gz hardflip-379671ddf93f9d5af1474dfff8e01151ae31329f.tar.bz2 hardflip-379671ddf93f9d5af1474dfff8e01151ae31329f.tar.xz hardflip-379671ddf93f9d5af1474dfff8e01151ae31329f.tar.zst hardflip-379671ddf93f9d5af1474dfff8e01151ae31329f.zip |
fuck it work so wellfuzz
-rw-r--r-- | src/c_fuzz.go | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/c_fuzz.go b/src/c_fuzz.go index c45e4b5..e183a85 100644 --- a/src/c_fuzz.go +++ b/src/c_fuzz.go @@ -52,14 +52,13 @@ package main import ( - "fmt" "io" "os/exec" + "path/filepath" "strings" - "time" ) -func c_init_pipes(ui *HardUI, +func c_fuzz_init_pipes(ui *HardUI, search *exec.Cmd) (io.WriteCloser, io.ReadCloser) { stdin, err := search.StdinPipe() if err != nil { @@ -76,13 +75,29 @@ func c_init_pipes(ui *HardUI, return stdin, stdout } +func c_fuzz_find_item(str_out string, litems *ItemsList) (*ItemsNode) { + var ptr *ItemsNode + + path, name := filepath.Split(str_out) + path = "/" + path + for ptr = litems.head; ptr != nil; ptr = ptr.next { + if ptr.is_dir() == true { + continue + } + if strings.Compare(name, ptr.Host.Name) == 0 && strings.Compare(path, ptr.path()) == 0 { + return ptr + } + } + return nil +} + func c_fuzz(data *HardData, ui *HardUI) { if err := ui.s.Suspend(); err != nil { c_error_mode("screen", err, ui) return } search := exec.Command("fzf") - stdin, stdout := c_init_pipes(ui, search) + stdin, stdout := c_fuzz_init_pipes(ui, search) if stdin == nil || stdout == nil { return } @@ -106,7 +121,13 @@ func c_fuzz(data *HardData, ui *HardUI) { c_die("search stdout", err) } str_out := strings.TrimSuffix(string(output), "\n") - fmt.Printf("[%s]\n", str_out) - time.Sleep(3 * time.Second) c_resume_or_die(ui) + if len(str_out) > 0 { + item := c_fuzz_find_item(str_out, data.litems) + if item == nil { + c_error_mode("item not found", nil, ui) + return + } + data.litems.curr = item + } } |