diff --git a/app/t2-stat-parser/ftp.go b/app/t2-stat-parser/ftp.go new file mode 100644 index 0000000..92f31c6 --- /dev/null +++ b/app/t2-stat-parser/ftp.go @@ -0,0 +1,41 @@ +package main + +import ( + "bytes" + "fmt" + "log" + "os" + "os/exec" +) + +//ShellToUse is... +const ShellToUse = "sh" + +func Shellout(command string) (error, string, string) { + var stdout bytes.Buffer + var stderr bytes.Buffer + cmd := exec.Command(ShellToUse, "-c", command) + cmd.Stdout = &stdout + cmd.Stderr = &stderr + err := cmd.Run() + return err, stdout.String(), stderr.String() +} + +func initFTP() { + + ftpHOST := os.Getenv("FTP_HOST") + ftpUSER := os.Getenv("FTP_USER") + ftpPW := os.Getenv("FTP_PW") + + fmt.Println("Downloading stat files from", ftpHOST) + + err, out, errout := Shellout("wget --recursive -nH --cut-dirs=4 --user=" + ftpUSER + " --no-parent --password=" + ftpPW + " -P /app/serverStats/stats/ ftp://" + ftpHOST + "/" + ftpHOST + "_port_28000/classic/serverStats/stats/") + if err != nil { + log.Printf("error: %v\n", err) + } + fmt.Println("--- FTP stdout ---") + fmt.Println(out) + fmt.Println("--- FTP stderr ---") + fmt.Println(errout) + +} diff --git a/app/t2-stat-parser/main.go b/app/t2-stat-parser/main.go index fa5a46a..6b2a5ee 100644 --- a/app/t2-stat-parser/main.go +++ b/app/t2-stat-parser/main.go @@ -1,17 +1,23 @@ /* + [ T2 Stat Parser for DarkTiger's Stats] -Parser for DarkTiger's T2 Server Stats + A player stat parser that retrieves stat files via FTP + and imports them into a postgres db daily -[TODO] - - Read Additional GameTypes on the fly - - Use go modules - - Update to v4 SQL driver - - Ability to download stat files from remote server via FTP */ package main -func main() { +import ( + "fmt" +) +func main() { + fmt.Println("Starting FTP stat file download") + initFTP() + fmt.Println("Stat files downloaded!") + + fmt.Println("Starting stat parser") initParser() + fmt.Println("All done!") } diff --git a/app/t2-stat-parser/parser.go b/app/t2-stat-parser/parser.go index fdbbf4c..5f5a817 100644 --- a/app/t2-stat-parser/parser.go +++ b/app/t2-stat-parser/parser.go @@ -3,10 +3,7 @@ Parser for DarkTiger's T2 Server Stats [TODO] - - Read Additional GameTypes on the fly - - Use go modules - Update to v4 SQL driver - - Ability to download stat files from remote server via FTP */ package main