Impl complete testing needed

This commit is contained in:
Bel LaPointe
2019-11-21 13:12:30 -07:00
parent 3079cd163f
commit a140d0eade
15 changed files with 111 additions and 33 deletions

15
notes/delete.go Normal file
View File

@@ -0,0 +1,15 @@
package notes
import (
"errors"
"local/notes-server/filetree"
"os"
)
func (n *Notes) Delete(urlPath string) error {
p := filetree.NewPathFromURL(urlPath)
if p.IsDir() {
return errors.New("path is dir")
}
return os.Remove(p.Local)
}

1
notes/delete_test.go Normal file
View File

@@ -0,0 +1 @@
package notes

View File

@@ -5,31 +5,32 @@ import (
"bytes"
"local/notes-server/filetree"
"os"
"path"
"path/filepath"
)
func (n *Notes) Search(phrase string) (string, error) {
files := filetree.NewFiles()
err := filepath.Walk(n.root,
func(path string, info os.FileInfo, err error) error {
func(walked string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
ok, err := grepFile(path, []byte(phrase))
if ok {
p := filetree.NewPathFromLocal(path)
ok, err := grepFile(walked, []byte(phrase))
if err == nil && ok {
p := filetree.NewPathFromLocal(path.Dir(walked))
files.Push(p, info)
}
return err
},
)
return filetree.Paths(*files).List(), err
return filetree.Paths(*files).List(true), err
}
func grepFile(file string, pat []byte) (bool, error) {
func grepFile(file string, phrase []byte) (bool, error) {
f, err := os.Open(file)
if err != nil {
return false, err
@@ -37,7 +38,7 @@ func grepFile(file string, pat []byte) (bool, error) {
defer f.Close()
scanner := bufio.NewScanner(f)
for scanner.Scan() {
if bytes.Contains(scanner.Bytes(), pat) {
if bytes.Contains(scanner.Bytes(), phrase) {
return true, scanner.Err()
}
}