@@ -199,7 +199,7 @@ func DownloadMod(w http.ResponseWriter, r *http.Request) {
199199
200200 vars := mux .Vars (r )
201201 mod := vars ["mod" ]
202- modFile := config .FactorioModsDir + "/" + mod
202+ modFile := filepath . Join ( config .FactorioModsDir , mod )
203203
204204 w .Header ().Set ("Content-Disposition" , fmt .Sprintf ("attachment; filename=\" %s\" " , mod ))
205205 log .Printf ("%s downloading: %s" , r .Host , modFile )
@@ -277,6 +277,48 @@ func ListModPacks(w http.ResponseWriter, r *http.Request) {
277277 }
278278}
279279
280+ func DownloadModPack (w http.ResponseWriter , r * http.Request ) {
281+ w .Header ().Set ("Content-Type" , "application/json;charset=UTF-8" )
282+
283+ vars := mux .Vars (r )
284+ modpack := vars ["modpack" ]
285+ modFile := filepath .Join (config .FactorioDir , "modpacks" , modpack )
286+
287+ w .Header ().Set ("Content-Disposition" , fmt .Sprintf ("attachment; filename=\" %s\" " , modpack ))
288+ log .Printf ("%s downloading: %s" , r .Host , modFile )
289+
290+ http .ServeFile (w , r , modFile )
291+ }
292+
293+ func DeleteModPack (w http.ResponseWriter , r * http.Request ) {
294+ var err error
295+ resp := JSONResponse {
296+ Success : false ,
297+ }
298+
299+ w .Header ().Set ("Content-Type" , "application/json;charset=UTF-8" )
300+
301+ vars := mux .Vars (r )
302+ modPack := vars ["modpack" ]
303+
304+ err = rmModPack (modPack )
305+ if err == nil {
306+ // Modpack removed
307+ resp .Data = fmt .Sprintf ("Removed modpack: %s" , modPack )
308+ resp .Success = true
309+ if err := json .NewEncoder (w ).Encode (resp ); err != nil {
310+ log .Printf ("Error removing modpack %s" , err )
311+ }
312+ } else {
313+ log .Printf ("Error in remove modpack handler: %s" , err )
314+ resp .Data = fmt .Sprintf ("Error in remove modpack handler: %s" , err )
315+
316+ if err := json .NewEncoder (w ).Encode (resp ); err != nil {
317+ log .Printf ("Error removing modpack: %s" , err )
318+ }
319+ }
320+ }
321+
280322// Lists all save files in the factorio/saves directory
281323func ListSaves (w http.ResponseWriter , r * http.Request ) {
282324 var err error
0 commit comments