56748f043e
Shows changelog before updating.
69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package appimg
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/gotk3/gotk3/gtk"
|
|
)
|
|
|
|
func downloadApp(parent *gtk.Window, ap appimg) {
|
|
parent.SetSensitive(false)
|
|
win, _ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
|
|
win.SetTransientFor(parent)
|
|
win.Connect("destroy", func() {
|
|
parent.SetSensitive(true)
|
|
})
|
|
spn, _ := gtk.SpinnerNew()
|
|
spn.Start()
|
|
lbl, _ := gtk.LabelNew("Downloading " + ap.full + "...")
|
|
box, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 5)
|
|
box.SetMarginStart(10)
|
|
box.SetMarginEnd(10)
|
|
box.SetMarginTop(10)
|
|
box.SetMarginBottom(10)
|
|
box.Add(spn)
|
|
box.Add(lbl)
|
|
win.Add(box)
|
|
win.SetPosition(gtk.WIN_POS_CENTER_ON_PARENT)
|
|
win.ShowAll()
|
|
win.Show()
|
|
go func(win *gtk.Window, ap appimg) {
|
|
defer win.Close()
|
|
check := http.Client{
|
|
CheckRedirect: func(r *http.Request, via []*http.Request) error {
|
|
r.URL.Opaque = r.URL.Path
|
|
return nil
|
|
},
|
|
}
|
|
fmt.Println(urlBase + ap.full)
|
|
resp, err := check.Get(urlBase + ap.full)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
defer resp.Body.Close()
|
|
name := strings.Split(ap.full, "-")[0]
|
|
var foldName string
|
|
if _, err = os.Open("PortableApps/" + name + "Portable"); err == nil {
|
|
foldName = "PortableApps/" + name + "Portable"
|
|
} else if _, err = os.Open("PortableApps/" + name); err == nil {
|
|
foldName = "PortableApps/" + name
|
|
} else {
|
|
os.Mkdir("PortableApps/"+name+"Portable", 0777)
|
|
foldName = "PortableApps/" + name
|
|
}
|
|
os.Remove(foldName + "/" + ap.full)
|
|
fil, err := os.Create(foldName + "/" + ap.full)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
io.Copy(fil, resp.Body)
|
|
fil.Chmod(0777)
|
|
}(win, ap)
|
|
}
|