aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoe <rbo@gmx.us>2025-08-27 15:22:35 +0200
committerjoe <rbo@gmx.us>2025-08-27 15:22:35 +0200
commit0f073fec1d25bebae539a501fcfe428fc7275245 (patch)
tree32ed82a7df0d3c61e36c5b3ab9f94364881dabfd
parentfuck logger use printf (diff)
downloadhardflip-0f073fec1d25bebae539a501fcfe428fc7275245.tar.gz
hardflip-0f073fec1d25bebae539a501fcfe428fc7275245.tar.bz2
hardflip-0f073fec1d25bebae539a501fcfe428fc7275245.tar.xz
hardflip-0f073fec1d25bebae539a501fcfe428fc7275245.tar.zst
hardflip-0f073fec1d25bebae539a501fcfe428fc7275245.zip
up
-rw-r--r--src/c_fuzz.go49
1 files changed, 23 insertions, 26 deletions
diff --git a/src/c_fuzz.go b/src/c_fuzz.go
index c629b91..c45e4b5 100644
--- a/src/c_fuzz.go
+++ b/src/c_fuzz.go
@@ -59,39 +59,31 @@ import (
"time"
)
-func c_list_items(litems *ItemsList, stdin io.WriteCloser) {
- for ptr := litems.head; ptr != nil; ptr = ptr.next {
- var forebears []string
-
- if ptr.is_dir() == true {
- continue
- }
- for rptr := ptr.Host.parent; len(rptr.Name) > 0; rptr = rptr.Parent {
- forebears = append(forebears, rptr.Name)
- }
- for i := len(forebears) - 1; i >= 0; i-- {
- io.WriteString(stdin, forebears[i] + "/")
- }
- io.WriteString(stdin, ptr.Host.Name + "\n")
- }
-}
-
-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")
+func c_init_pipes(ui *HardUI,
+ search *exec.Cmd) (io.WriteCloser, io.ReadCloser) {
stdin, err := search.StdinPipe()
if err != nil {
c_error_mode("search stdin pipe", err, ui)
c_resume_or_die(ui)
- return
+ return nil, nil
}
stdout, err := search.StdoutPipe()
if err != nil {
c_error_mode("search stdout pipe", err, ui)
c_resume_or_die(ui)
+ return nil, nil
+ }
+ return stdin, stdout
+}
+
+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)
+ if stdin == nil || stdout == nil {
return
}
if err := search.Start(); err != nil {
@@ -101,12 +93,17 @@ func c_fuzz(data *HardData, ui *HardUI) {
}
go func() {
defer stdin.Close()
- c_list_items(data.litems, stdin)
+ for ptr := data.litems.head; ptr != nil; ptr = ptr.next {
+ if ptr.is_dir() == true {
+ continue
+ }
+ io.WriteString(stdin, ptr.path()[1:] + ptr.Host.Name + "\n")
+ }
}()
output, err := io.ReadAll(stdout)
if err != nil {
ui.s.Fini()
- c_die("fuck it failed", err)
+ c_die("search stdout", err)
}
str_out := strings.TrimSuffix(string(output), "\n")
fmt.Printf("[%s]\n", str_out)