101 lines
2.0 KiB
Go
101 lines
2.0 KiB
Go
package eve
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/user"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func suffixTrim(s, suffix string) string {
|
|
if strings.HasSuffix(s, suffix) {
|
|
s = s[:len(s)-len(suffix)]
|
|
}
|
|
return s
|
|
}
|
|
|
|
var filesFound []string
|
|
var filesPotential []string
|
|
var searchPath []string
|
|
|
|
func FileSearchUnix() []string {
|
|
fmt.Println("looking for chat log files..")
|
|
|
|
searchPath = append(searchPath, "~/.local/share/Steam/steamapps/compatdata/8500/pfx/drive_c/users/steamuser/My Documents/EVE/logs/Chatlogs")
|
|
|
|
userName, _ := user.Current()
|
|
homeDir := userName.HomeDir
|
|
|
|
for _, d := range searchPath {
|
|
|
|
// if has trailing slash, remove it
|
|
d = suffixTrim(d, "/")
|
|
|
|
// do a unix like expansion if the path starts like `~/`
|
|
if strings.HasPrefix(d, "~/") {
|
|
d = filepath.Join(homeDir, d[2:])
|
|
}
|
|
f, err := os.Open(d)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
files, err := f.Readdir(-1)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
err = f.Close()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
for _, file := range files {
|
|
fullFilePath := fmt.Sprintf("%v/%v", d, file.Name())
|
|
filesPotential = append(filesPotential, fullFilePath)
|
|
}
|
|
|
|
}
|
|
return filesPotential
|
|
}
|
|
|
|
// returns paths with eve chat log files
|
|
func PathSearch() []string {
|
|
var pathsWithLogs []string
|
|
fmt.Println("PathSearch looking for chat log files..")
|
|
|
|
searchPath = append(searchPath, "~/.local/share/Steam/steamapps/compatdata/8500/pfx/drive_c/users/steamuser/My Documents/EVE/logs/Chatlogs")
|
|
|
|
userName, _ := user.Current()
|
|
homeDir := userName.HomeDir
|
|
|
|
for _, d := range searchPath {
|
|
|
|
// if has trailing slash, remove it
|
|
d = suffixTrim(d, "/")
|
|
|
|
// do a unix like expansion if the path starts like `~/`
|
|
if strings.HasPrefix(d, "~/") {
|
|
d = filepath.Join(homeDir, d[2:])
|
|
}
|
|
f, err := os.Open(d)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
files, err := f.Readdir(-1)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
err = f.Close()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
if len(files) > 0 {
|
|
pathsWithLogs = append(pathsWithLogs, d)
|
|
}
|
|
fmt.Println(len(files))
|
|
|
|
}
|
|
return pathsWithLogs
|
|
}
|