3 Commits

Author SHA1 Message Date
Belac Darkstorm a9eeb3bb1c Last push before GUI redo 2017-04-04 01:32:13 -05:00
Belac Darkstorm 844a282fd7 Wine download finished for later on.
Going to start switching to another GUI library
2017-04-04 01:23:17 -05:00
Belac Darkstorm 9da352a315 Updating is working!! 2017-04-03 10:43:22 -05:00
3 changed files with 82 additions and 31 deletions
+17 -5
View File
@@ -2,6 +2,8 @@ package main
import (
"fmt"
"os"
"os/exec"
"github.com/nelsam/gxui"
"github.com/nelsam/gxui/drivers/gl"
@@ -10,7 +12,7 @@ import (
)
const (
version = "0.1.1.1"
version = "1.1.0.0"
defIni = "[basic]\ntheme=dk"
)
@@ -27,25 +29,35 @@ var (
)
func main() {
stat := versionDL()
updated := false
os.MkdirAll("PortableApps/LinuxPACom", 0777)
stat, err := versionDL()
if stat {
res := getVersionFileInfo()
if res != "Error!" {
stat = checkForUpdate(res)
stat, err = checkForUpdate(res)
if stat {
downloadUpdate(res)
updated = true
} else {
fmt.Println("Failed DL")
fmt.Println(err)
}
} else {
fmt.Println("Failed Version File Info")
}
} else {
fmt.Println("Failed Version DL")
fmt.Println(err)
}
if updated {
cmd := exec.Command("./LinuxPA")
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Start()
} else {
master = make(map[string][]app)
linmaster = make(map[string][]app)
gl.StartDriver(appMain)
}
}
func appMain(dri gxui.Driver) {
+20 -23
View File
@@ -2,7 +2,6 @@ package main
import (
"bufio"
"fmt"
"io"
"net/http"
"os"
@@ -19,15 +18,12 @@ const (
//For some of the code
//Returns if success
func versionDL() bool {
versionFile, err := os.Open("PortableApps/LinuxPACom/Version")
func versionDL() (bool, error) {
versionFile, err := os.Create("PortableApps/LinuxPACom/Version")
if err != nil {
versionFile, err = os.Create("PortableApps/LinuxPACom/Version")
if err != nil {
return false
return false, err
}
}
defer versionFile.Close()
versionFile.Chmod(0777)
check := http.Client{
CheckRedirect: func(r *http.Request, via []*http.Request) error {
r.URL.Opaque = r.URL.Path
@@ -35,15 +31,14 @@ func versionDL() bool {
},
}
response, err := check.Get(versionURL)
defer response.Body.Close()
if err != nil {
return false
return false, err
}
_, err = io.Copy(versionFile, response.Body)
if err != nil {
return false
return false, err
}
return true
return true, nil
}
func getVersionFileInfo() string {
@@ -56,7 +51,7 @@ func getVersionFileInfo() string {
return string(out)
}
func checkForUpdate(new string) bool {
func checkForUpdate(new string) (bool, error) {
curSlice := strings.Split(version, ".")
newSlice := strings.Split(new, ".")
curNums := make([]int, 4)
@@ -69,26 +64,28 @@ func checkForUpdate(new string) bool {
num, err = strconv.Atoi(newSlice[i])
if err == nil {
newNums[i] = num
} else {
return false, err
}
if newNums[i] > curNums[i] {
return true
return true, nil
}
}
return false
return false, nil
}
func downloadUpdate(newVersion string) bool {
func downloadUpdate(newVersion string) (bool, error) {
url := strings.Replace(downloadURL, "XXX", newVersion, -1)
err := os.Rename("LinuxPA", ".LinuxPA.old")
if err != nil {
fmt.Println(err)
return false
return false, err
}
fil, err := os.Create("LinuxPA")
fil.Chmod(0777)
defer fil.Close()
if err != nil {
os.Rename(".LinuxPA.old", "LinuxPA")
return false
return false, err
}
check := http.Client{
CheckRedirect: func(r *http.Request, via []*http.Request) error {
@@ -97,13 +94,13 @@ func downloadUpdate(newVersion string) bool {
},
}
re, err := check.Get(url)
defer re.Body.Close()
if err != nil {
return false
return false, err
}
defer re.Body.Close()
_, err = io.Copy(fil, re.Body)
if err != nil {
return false
return false, err
}
return true
return true, nil
}
+42
View File
@@ -0,0 +1,42 @@
package main
import (
"io"
"net/http"
"os"
"github.com/mholt/archiver"
)
const (
wineURL = "https://www.playonlinux.com/wine/binaries/linux-amd64/PlayOnLinux-wine-2.5-linux-amd64.pol"
)
func downloadWine() (bool, error) {
wineTar, err := os.Create("PortableApps/LinuxPACom/wine2.5.tar.bz2")
if err != nil {
return false, err
}
wineTar.Chmod(0777)
defer wineTar.Close()
check := http.Client{
CheckRedirect: func(r *http.Request, via []*http.Request) error {
r.URL.Opaque = r.URL.Path
return nil
},
}
resp, err := check.Get(wineURL)
if err != nil {
return false, err
}
defer resp.Body.Close()
_, err = io.Copy(wineTar, resp.Body)
if err != nil {
return false, err
}
err = archiver.TarBz2.Open("PortableApps/LinuxPACom/wine2.5.tar.bz2", "PortableApps/LinuxPACom/Wine")
if err != nil {
return false, err
}
return true, nil
}