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 ( import (
"fmt" "fmt"
"os"
"os/exec"
"github.com/nelsam/gxui" "github.com/nelsam/gxui"
"github.com/nelsam/gxui/drivers/gl" "github.com/nelsam/gxui/drivers/gl"
@@ -10,7 +12,7 @@ import (
) )
const ( const (
version = "0.1.1.1" version = "1.1.0.0"
defIni = "[basic]\ntheme=dk" defIni = "[basic]\ntheme=dk"
) )
@@ -27,25 +29,35 @@ var (
) )
func main() { func main() {
stat := versionDL() updated := false
os.MkdirAll("PortableApps/LinuxPACom", 0777)
stat, err := versionDL()
if stat { if stat {
res := getVersionFileInfo() res := getVersionFileInfo()
if res != "Error!" { if res != "Error!" {
stat = checkForUpdate(res) stat, err = checkForUpdate(res)
if stat { if stat {
downloadUpdate(res) downloadUpdate(res)
updated = true
} else { } else {
fmt.Println("Failed DL") fmt.Println(err)
} }
} else { } else {
fmt.Println("Failed Version File Info") fmt.Println("Failed Version File Info")
} }
} else { } 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) master = make(map[string][]app)
linmaster = make(map[string][]app) linmaster = make(map[string][]app)
gl.StartDriver(appMain) gl.StartDriver(appMain)
}
} }
func appMain(dri gxui.Driver) { func appMain(dri gxui.Driver) {
+20 -23
View File
@@ -2,7 +2,6 @@ package main
import ( import (
"bufio" "bufio"
"fmt"
"io" "io"
"net/http" "net/http"
"os" "os"
@@ -19,15 +18,12 @@ const (
//For some of the code //For some of the code
//Returns if success //Returns if success
func versionDL() bool { func versionDL() (bool, error) {
versionFile, err := os.Open("PortableApps/LinuxPACom/Version") versionFile, err := os.Create("PortableApps/LinuxPACom/Version")
if err != nil { if err != nil {
versionFile, err = os.Create("PortableApps/LinuxPACom/Version") return false, err
if err != nil {
return false
} }
} versionFile.Chmod(0777)
defer versionFile.Close()
check := http.Client{ check := http.Client{
CheckRedirect: func(r *http.Request, via []*http.Request) error { CheckRedirect: func(r *http.Request, via []*http.Request) error {
r.URL.Opaque = r.URL.Path r.URL.Opaque = r.URL.Path
@@ -35,15 +31,14 @@ func versionDL() bool {
}, },
} }
response, err := check.Get(versionURL) response, err := check.Get(versionURL)
defer response.Body.Close()
if err != nil { if err != nil {
return false return false, err
} }
_, err = io.Copy(versionFile, response.Body) _, err = io.Copy(versionFile, response.Body)
if err != nil { if err != nil {
return false return false, err
} }
return true return true, nil
} }
func getVersionFileInfo() string { func getVersionFileInfo() string {
@@ -56,7 +51,7 @@ func getVersionFileInfo() string {
return string(out) return string(out)
} }
func checkForUpdate(new string) bool { func checkForUpdate(new string) (bool, error) {
curSlice := strings.Split(version, ".") curSlice := strings.Split(version, ".")
newSlice := strings.Split(new, ".") newSlice := strings.Split(new, ".")
curNums := make([]int, 4) curNums := make([]int, 4)
@@ -69,26 +64,28 @@ func checkForUpdate(new string) bool {
num, err = strconv.Atoi(newSlice[i]) num, err = strconv.Atoi(newSlice[i])
if err == nil { if err == nil {
newNums[i] = num newNums[i] = num
} else {
return false, err
} }
if newNums[i] > curNums[i] { 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) url := strings.Replace(downloadURL, "XXX", newVersion, -1)
err := os.Rename("LinuxPA", ".LinuxPA.old") err := os.Rename("LinuxPA", ".LinuxPA.old")
if err != nil { if err != nil {
fmt.Println(err) return false, err
return false
} }
fil, err := os.Create("LinuxPA") fil, err := os.Create("LinuxPA")
fil.Chmod(0777)
defer fil.Close() defer fil.Close()
if err != nil { if err != nil {
os.Rename(".LinuxPA.old", "LinuxPA") os.Rename(".LinuxPA.old", "LinuxPA")
return false return false, err
} }
check := http.Client{ check := http.Client{
CheckRedirect: func(r *http.Request, via []*http.Request) error { CheckRedirect: func(r *http.Request, via []*http.Request) error {
@@ -97,13 +94,13 @@ func downloadUpdate(newVersion string) bool {
}, },
} }
re, err := check.Get(url) re, err := check.Get(url)
defer re.Body.Close()
if err != nil { if err != nil {
return false return false, err
} }
defer re.Body.Close()
_, err = io.Copy(fil, re.Body) _, err = io.Copy(fil, re.Body)
if err != nil { 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
}