Added download and extract mod from modlist
This commit is contained in:
27
mods.go
27
mods.go
@@ -7,6 +7,7 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func findmodlist(modlist string) bool {
|
||||
@@ -42,6 +43,12 @@ func downloadMods(modlist string) {
|
||||
log.Fatalf("Error reading modlist: %v", err)
|
||||
}
|
||||
defer file.Close()
|
||||
// create temp directory
|
||||
tempDir, err := os.MkdirTemp("", "factoryman-*")
|
||||
if err != nil {
|
||||
log.Fatalln("Failed to create temporary directory")
|
||||
}
|
||||
defer os.RemoveAll(tempDir)
|
||||
var modList ModList
|
||||
decoder := json.NewDecoder(file)
|
||||
if err := decoder.Decode(&modList); err != nil {
|
||||
@@ -71,16 +78,28 @@ func downloadMods(modlist string) {
|
||||
log.Fatalf("Error reading JSON: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("Mod: %s, Ver: %s, Enabled: %t\n", mod.Name, mod.Version, mod.Enabled)
|
||||
//fmt.Printf("Mod: %s, Ver: %s, Enabled: %t\n", mod.Name, mod.Version, mod.Enabled)
|
||||
|
||||
accessToken := fmt.Sprintf("?username=%s&token=%s", c.Factoryman.UserName, c.Factoryman.ApiToken)
|
||||
modDownloadUrl := fmt.Sprintf("https://mods.factorio.com%s%s", moddata.Releases[len(moddata.Releases)-1].DownloadUrl, accessToken)
|
||||
fmt.Println(modDownloadUrl)
|
||||
downloadErr := download(string(c.Server.ServDir+"/mods/"+moddata.Releases[len(moddata.Releases)-1].Filename), modDownloadUrl)
|
||||
//fmt.Println(modDownloadUrl)
|
||||
fileName := string(tempDir + "/" + moddata.Releases[len(moddata.Releases)-1].Filename)
|
||||
downloadErr := download(fileName, modDownloadUrl)
|
||||
if downloadErr != nil {
|
||||
log.Fatalf("Error downloading: %v", downloadErr)
|
||||
}
|
||||
fmt.Printf("Downloaded: %s\n", moddata.Releases[len(moddata.Releases)-1].Filename)
|
||||
fmt.Printf("Downloaded: %s\n", fileName)
|
||||
fmt.Println("extracting files...")
|
||||
|
||||
/*cmd := exec.Command("unzip", fileName, "-d", c.Server.ServDir+"/mods/")
|
||||
out, err := cmd.Output()
|
||||
if err != nil {
|
||||
log.Fatalf("%v\n", err)
|
||||
}*/
|
||||
|
||||
exec.Command("unzip", fileName, "-d", c.Server.ServDir+"/mods/")
|
||||
//fmt.Printf("%s\ndone\n", out)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user