Implement scanning project dirs
This commit is contained in:
		
							
								
								
									
										36
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								main.go
									
									
									
									
									
								
							| @@ -45,6 +45,10 @@ var scanFolders []string = []string{ | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	for idx, folder := range scanFolders { | ||||
| 		scanFolders[idx] = path.Clean(folder) | ||||
| 	} | ||||
|  | ||||
| 	config, err := ReadDBConfig() | ||||
| 	if err != nil { | ||||
| 		Error.Fatalf("Error reading database config: %v", err) | ||||
| @@ -58,7 +62,6 @@ func main() { | ||||
| 		if relevantPath == "" { | ||||
| 			relevantPath = v.FolderURI | ||||
| 		} | ||||
| 		log.Printf("%#v", relevantPath) | ||||
| 		relevantPath = strings.TrimPrefix(relevantPath, "file://") | ||||
| 		relevantPath = strings.TrimPrefix(relevantPath, "/") | ||||
| 		decoded, err := url.QueryUnescape(relevantPath) | ||||
| @@ -70,8 +73,16 @@ func main() { | ||||
|  | ||||
| 		file, err := os.Open(relevantPath) | ||||
| 		if err != nil { | ||||
| 			log.Printf("%#v %s", relevantPath, "...does not exist") | ||||
| 			cleaned++ | ||||
| 			if os.IsNotExist(err) { | ||||
| 				log.Printf("Discarding non existing directory %s", relevantPath) | ||||
| 				cleaned++ | ||||
| 			} else { | ||||
| 				// Maybe we fail to open it for some other reason... | ||||
| 				// Could be it still does exist | ||||
| 				Error.Printf("Error opening file %s: %v", relevantPath, err) | ||||
| 				validEntries = append(validEntries, &v) | ||||
| 				continue | ||||
| 			} | ||||
| 			continue | ||||
| 		} | ||||
| 		file.Close() | ||||
| @@ -85,9 +96,26 @@ func main() { | ||||
| 	} | ||||
| 	log.Printf("Cleaned %d invalid entries, %d valid entries remain", cleaned, len(validEntries)) | ||||
|  | ||||
| 	added := 0 | ||||
| 	for _, folder := range scanFolders { | ||||
| 		log.Printf("%#v", folder) | ||||
| 		files, err := os.ReadDir(folder) | ||||
| 		if err != nil { | ||||
| 			log.Printf("Error reading folder %s: %v", folder, err) | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		for _, fileEntry := range files { | ||||
| 			if !fileEntry.IsDir() { | ||||
| 				continue | ||||
| 			} | ||||
| 			newEntry := Entry{ | ||||
| 				FolderURI: path.Clean(path.Join(folder, fileEntry.Name())), | ||||
| 			} | ||||
| 			validEntries = append(validEntries, &newEntry) | ||||
| 			added++ | ||||
| 		} | ||||
| 	} | ||||
| 	log.Printf("Added %d new entries from scan folders, now %d total", added, len(validEntries)) | ||||
| } | ||||
|  | ||||
| func ReadDBConfig() (Config, error) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user