Impl complete testing needed
This commit is contained in:
15
notes/delete.go
Normal file
15
notes/delete.go
Normal 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
1
notes/delete_test.go
Normal file
@@ -0,0 +1 @@
|
||||
package notes
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user