Implement scanning project dirs
This commit is contained in:
34
main.go
34
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")
|
||||
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) {
|
||||
|
8
types.go
8
types.go
@@ -3,13 +3,13 @@ package main
|
||||
type Config struct {
|
||||
Entries []Entry `json:"entries"`
|
||||
}
|
||||
type Workspace struct {
|
||||
ID string `json:"id"`
|
||||
ConfigPath string `json:"configPath"`
|
||||
}
|
||||
type Entry struct {
|
||||
FolderURI string `json:"folderUri,omitempty"`
|
||||
Workspace Workspace `json:"workspace,omitempty"`
|
||||
FileURI string `json:"fileUri,omitempty"`
|
||||
Label string `json:"label,omitempty"`
|
||||
}
|
||||
type Workspace struct {
|
||||
ID string `json:"id"`
|
||||
ConfigPath string `json:"configPath"`
|
||||
}
|
||||
|
Reference in New Issue
Block a user