excluded dirs

This commit is contained in:
piotr 2021-09-25 04:39:05 +02:00
parent fb00364e51
commit fa3a8d9bb7
4 changed files with 33 additions and 10 deletions

Binary file not shown.

13
main.go
View File

@ -30,6 +30,7 @@ var (
pinned []string
id2entry map[string]desktopEntry
preferredApps map[string]interface{}
exclusions []string
)
var categoryNames = [...]string{
@ -264,11 +265,21 @@ func main() {
paFile := filepath.Join(configDirectory, "preferred-apps.json")
preferredApps, err = loadPreferredApps(paFile)
if err != nil {
log.Errorf("Custom associations file %s not found or invalid", paFile)
log.Infof("Custom associations file %s not found or invalid", paFile)
} else {
log.Infof("Found %v associations in %s", len(preferredApps), paFile)
}
// Load user-defined paths excluded from file search
exFile := filepath.Join(configDirectory, "excluded-dirs")
exclusions, err = loadTextFile(exFile)
if err != nil {
log.Infof("Search exclusions file %s not found", exFile)
} else {
log.Infof("Found %v search exclusions in %s", len(exclusions), exFile)
fmt.Println(exclusions)
}
// USER INTERFACE
gtk.Init(nil)

View File

@ -465,7 +465,7 @@ func loadTextFile(path string) ([]string, error) {
var output []string
for _, line := range lines {
line = strings.TrimSpace(line)
if line != "" {
if line != "" && !strings.HasPrefix(line, "#") {
output = append(output, line)
}

View File

@ -291,16 +291,19 @@ func walk(path string, d fs.DirEntry, e error) error {
if e != nil {
return e
}
// don't search leading part of the path, as e.g. '/home/user/Pictures'
toSearch := strings.Split(path, ignore)[1]
if strings.Contains(strings.ToLower(toSearch), strings.ToLower(phrase)) {
// mark directories
if d.IsDir() {
fileSearchResults = append(fileSearchResults, fmt.Sprintf("#is_dir#%s", path))
} else {
fileSearchResults = append(fileSearchResults, path)
if !isExcluded(path) {
// don't search leading part of the path, as e.g. '/home/user/Pictures'
toSearch := strings.Split(path, ignore)[1]
if strings.Contains(strings.ToLower(toSearch), strings.ToLower(phrase)) {
// mark directories
if d.IsDir() {
fileSearchResults = append(fileSearchResults, fmt.Sprintf("#is_dir#%s", path))
} else {
fileSearchResults = append(fileSearchResults, path)
}
}
}
return nil
}
@ -388,6 +391,15 @@ func setUpSearchEntry() *gtk.SearchEntry {
return searchEntry
}
func isExcluded(dir string) bool {
for _, exclusion := range exclusions {
if strings.Contains(dir, exclusion) {
return true
}
}
return false
}
func searchUserDir(dir string) {
fileSearchResults = nil
ignore = userDirsMap[dir]