shithub: snarflog

Download patch

ref: c0c014364fd93f3daafec4934bc035f1aec4e773
parent: 295d55901af45d32853794745613ae741dab66e8
author: penny <penny@limitedideas.org>
date: Tue Nov 25 23:03:37 EST 2025

remove printf

--- a/main.go
+++ b/main.go
@@ -14,11 +14,15 @@
 	fs.BaseFile
 	real *os.File
 	realwrite *os.File
+	snarfStream fs.Stream
 }
 
 func (f *snarfile) Write(fid uint64, offset uint64, data []byte) (uint32, error) {
 	f.realwrite.Write(data)
-	fmt.Println(string(data))
+	_, err := f.snarfStream.Write(data)
+	if err != nil {
+		fmt.Printf("Error writing to snarfStream: %v\n", err)
+	}
 	return uint32(len(data)), nil
 }
 
@@ -28,12 +32,13 @@
 	return content, err
 }
 
-func newSnarf(fsys *fs.FS, name, uid, gid string, perm uint32, real *os.File, realwrite *os.File) *snarfile {
+func newSnarf(fsys *fs.FS, name, uid, gid string, perm uint32, real *os.File, realwrite *os.File, stream fs.Stream) *snarfile {
 	stat := fsys.NewStat(name, uid, gid, perm)
 	return &snarfile{
 		BaseFile: *fs.NewBaseFile(stat),
 		real: real,
 		realwrite: realwrite,
+		snarfStream: stream,
 	}
 }
 
@@ -40,6 +45,15 @@
 func main() {
 	fid, dir := fs.NewFS("penny", "penny", proto.DMDIR|0644)
 
+	snarfStream := fs.NewSkippingStream(1024) // Buffer size 1024 bytes
+	snarfLogStat := fid.NewStat("snarflog", "penny", "penny", 0644)
+	snarfLogFile := fs.NewStreamFile(snarfLogStat, snarfStream)
+
+	if err := dir.AddChild(snarfLogFile); err != nil {
+		fmt.Printf("Err adding snarflog: %s\n", err)
+		return
+	}
+
 	realread, err := os.OpenFile("/dev/snarf", os.O_RDONLY, 0644)
 	if err != nil {
 		fmt.Printf("Coudn't open snarf: %s\n", err)
@@ -50,7 +64,7 @@
 		fmt.Printf("Coudn't open snarf for writing: %s\n", err)
 		return
 	}
-	snarf := newSnarf(fid, "snarf", "penny", "penny", 0644, realread, realwrite)
+	snarf := newSnarf(fid, "snarf", "penny", "penny", 0644, realread, realwrite, snarfStream)
 
 	if err := dir.AddChild(snarf); err != nil {
 		fmt.Printf("Err: %s\n", err)
--