more improvements
This commit is contained in:
82
src/main.go
82
src/main.go
@@ -34,8 +34,8 @@ import (
|
|||||||
|
|
||||||
type ConfigTOML struct {
|
type ConfigTOML struct {
|
||||||
Config struct {
|
Config struct {
|
||||||
DefaultHttpPort int `toml:"defaultHttpPort"`
|
HttpPort int `toml:"httpPort"`
|
||||||
DefaultCacheDir string `toml:"defaultCacheDir"`
|
CacheDir string `toml:"cacheDir"`
|
||||||
AutoDeleteCacheDir bool `toml:"dutoDeleteCacheDir"`
|
AutoDeleteCacheDir bool `toml:"dutoDeleteCacheDir"`
|
||||||
DaysToDelete int `toml:"daysToDelete"`
|
DaysToDelete int `toml:"daysToDelete"`
|
||||||
DataDir string `toml:"dataDir"`
|
DataDir string `toml:"dataDir"`
|
||||||
@@ -300,14 +300,14 @@ func main() {
|
|||||||
|
|
||||||
og_realname := os.Args[2]
|
og_realname := os.Args[2]
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/index.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
idb, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
idb, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return
|
return
|
||||||
@@ -391,7 +391,7 @@ func Install(packagepath string, serial uint) error {
|
|||||||
|
|
||||||
name := manifest.Name
|
name := manifest.Name
|
||||||
|
|
||||||
var destDir = fmt.Sprintf("/opt/packets/%s", name)
|
var destDir = filepath.Join(cfg.Config.DataDir, name)
|
||||||
|
|
||||||
f, err := os.Open(packagepath)
|
f, err := os.Open(packagepath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -524,7 +524,7 @@ func Install(packagepath string, serial uint) error {
|
|||||||
|
|
||||||
func GetPackageByMirror(mirror string, realname string) error {
|
func GetPackageByMirror(mirror string, realname string) error {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/index.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
@@ -575,7 +575,7 @@ func GetPackageByMirror(mirror string, realname string) error {
|
|||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
if resp.StatusCode != 200 {
|
if resp.StatusCode != 200 {
|
||||||
err := os.Remove(fmt.Sprintf("/var/cache/packets/%s", filename))
|
err := os.Remove(filepath.Join(cfg.Config.CacheDir, filename))
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return fmt.Errorf("failed to download, status code not 200OK")
|
return fmt.Errorf("failed to download, status code not 200OK")
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
@@ -584,12 +584,12 @@ func GetPackageByMirror(mirror string, realname string) error {
|
|||||||
return fmt.Errorf("failed to download, status code not 200OK")
|
return fmt.Errorf("failed to download, status code not 200OK")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.MkdirAll("/var/cache/packets", 0755); err != nil {
|
if err := os.MkdirAll(cfg.Config.CacheDir, 0755); err != nil {
|
||||||
log.Fatal("error creating file for package ", err)
|
log.Fatal("error creating file for package ", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
out, err := os.Create(fmt.Sprintf("/var/cache/packets/%s", filename))
|
out, err := os.Create(filepath.Join(cfg.Config.CacheDir, filename))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("error creating package ", err)
|
log.Fatal("error creating package ", err)
|
||||||
return err
|
return err
|
||||||
@@ -598,7 +598,7 @@ func GetPackageByMirror(mirror string, realname string) error {
|
|||||||
|
|
||||||
_, err = io.Copy(io.MultiWriter(out, bar), resp.Body)
|
_, err = io.Copy(io.MultiWriter(out, bar), resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err := os.Remove(fmt.Sprintf("/var/cache/packets/%s", filename))
|
err := os.Remove(filepath.Join(cfg.Config.CacheDir, filename))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -612,12 +612,12 @@ func GetPackageByMirror(mirror string, realname string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if os.Args[1] == "upgrade" {
|
if os.Args[1] == "upgrade" {
|
||||||
if err := Upgrade(fmt.Sprintf("/var/cache/packets/%s", filename), os.Args[2], serialPass); err != nil {
|
if err := Upgrade(filepath.Join(cfg.Config.CacheDir, filename), os.Args[2], serialPass); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
err = Install(fmt.Sprintf("/var/cache/packets/%s", filename), serial)
|
err = Install(filepath.Join(cfg.Config.CacheDir, filename), serial)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -626,7 +626,7 @@ func GetPackageByMirror(mirror string, realname string) error {
|
|||||||
}
|
}
|
||||||
func ResolvDependencies(realname string) {
|
func ResolvDependencies(realname string) {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/index.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -658,18 +658,18 @@ func ResolvDependencies(realname string) {
|
|||||||
|
|
||||||
func QueryInstall(realname string) {
|
func QueryInstall(realname string) {
|
||||||
|
|
||||||
_, err := os.Stat("/opt/packets/packets/index.db")
|
_, err := os.Stat(filepath.Join(PacketsDir, "index.db"))
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
fmt.Println("cant find index.db, please use sync first")
|
fmt.Println("cant find index.db, please use sync first")
|
||||||
}
|
}
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/index.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("cant find index.db, please use sync first")
|
log.Fatal("cant find index.db, please use sync first")
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
simplecheck, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
simplecheck, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
||||||
var exist bool
|
var exist bool
|
||||||
@@ -711,13 +711,13 @@ func QueryInstall(realname string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if os.Args[1] == "upgrade" {
|
if os.Args[1] == "upgrade" {
|
||||||
if err := Upgrade(fmt.Sprintf("/var/cache/packets/%s", filename), os.Args[2], serialPass); err != nil {
|
if err := Upgrade(filepath.Join(cfg.Config.CacheDir, filename), os.Args[2], serialPass); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
Install(fmt.Sprintf("/var/cache/packets/%s", filename), serial)
|
Install(filepath.Join(cfg.Config.CacheDir, filename), serial)
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -755,13 +755,13 @@ func QueryInstall(realname string) {
|
|||||||
continue
|
continue
|
||||||
} else {
|
} else {
|
||||||
if os.Args[1] == "upgrade" {
|
if os.Args[1] == "upgrade" {
|
||||||
if err := Upgrade(fmt.Sprintf("/var/cache/packets/%s", filename), os.Args[2], serialPass); err != nil {
|
if err := Upgrade(filepath.Join(cfg.Config.CacheDir, filename), os.Args[2], serialPass); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
Install(fmt.Sprintf("/var/cache/packets/%s", filename), serial)
|
Install(filepath.Join(cfg.Config.CacheDir, filename), serial)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -790,7 +790,7 @@ func QueryInstall(realname string) {
|
|||||||
|
|
||||||
func CheckDownloaded(filename string) bool {
|
func CheckDownloaded(filename string) bool {
|
||||||
|
|
||||||
_, err := os.Stat(fmt.Sprintf("/var/cache/packets/%s", filename))
|
_, err := os.Stat(filepath.Join(cfg.Config.CacheDir, filename))
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
@@ -801,14 +801,14 @@ func CheckDownloaded(filename string) bool {
|
|||||||
|
|
||||||
func Validate(filename string, realname string) error {
|
func Validate(filename string, realname string) error {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/index.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
downloaded, err := os.Open(fmt.Sprintf("/var/cache/packets/%s", filename))
|
downloaded, err := os.Open(filepath.Join(cfg.Config.CacheDir, filename))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("error reading new file")
|
log.Fatal("error reading new file")
|
||||||
return err
|
return err
|
||||||
@@ -835,7 +835,7 @@ func Validate(filename string, realname string) error {
|
|||||||
if hashString != hashStringDB {
|
if hashString != hashStringDB {
|
||||||
fmt.Println("tampered package, removing it...\nplease run the command again")
|
fmt.Println("tampered package, removing it...\nplease run the command again")
|
||||||
|
|
||||||
err := os.Remove(fmt.Sprintf("/var/cache/packets/%s", filename))
|
err := os.Remove(filepath.Join(cfg.Config.CacheDir, filename))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -914,12 +914,12 @@ func Sync(url string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
_, err = os.Stat("/opt/packets/packets/index.db")
|
_, err = os.Stat(filepath.Join(PacketsDir, "index.db"))
|
||||||
|
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
os.MkdirAll("/opt/packets/packets", 0755)
|
os.MkdirAll("/etc/packets", 0755)
|
||||||
}
|
}
|
||||||
f, err := os.Create("/opt/packets/packets/index.db")
|
f, err := os.Create(filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -931,7 +931,7 @@ func Sync(url string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func AddToInstalledDB(insert Installed) error {
|
func AddToInstalledDB(insert Installed) error {
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
@@ -967,7 +967,7 @@ func AddToInstalledDB(insert Installed) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Unninstall(realname string) error {
|
func Unninstall(realname string) error {
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
@@ -992,14 +992,14 @@ func Unninstall(realname string) error {
|
|||||||
return fmt.Errorf("operation cancelled")
|
return fmt.Errorf("operation cancelled")
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := exec.Command(fmt.Sprintf("/opt/packets/%s/remove.sh", realname))
|
cmd := exec.Command(filepath.Join(cfg.Config.DataDir, realname, "remove.sh"))
|
||||||
cmd.Stdout, cmd.Stderr = os.Stdout, os.Stderr
|
cmd.Stdout, cmd.Stderr = os.Stdout, os.Stderr
|
||||||
|
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.RemoveAll(fmt.Sprintf("/opt/packets/%s", realname)); err != nil {
|
if err := os.RemoveAll(filepath.Join(cfg.Config.DataDir, realname)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1014,7 +1014,7 @@ func Unninstall(realname string) error {
|
|||||||
|
|
||||||
func AlredySatisfied(realname string) error {
|
func AlredySatisfied(realname string) error {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
@@ -1036,7 +1036,7 @@ func AlredySatisfied(realname string) error {
|
|||||||
|
|
||||||
func ListPackets() error {
|
func ListPackets() error {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
@@ -1062,7 +1062,7 @@ func ListPackets() error {
|
|||||||
|
|
||||||
func Upgrade(packagepath string, og_realname string, serial uint) error {
|
func Upgrade(packagepath string, og_realname string, serial uint) error {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
@@ -1089,7 +1089,7 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
|
|
||||||
fmt.Printf("Unpacking (%s) above (%s)\n", og_realname, name)
|
fmt.Printf("Unpacking (%s) above (%s)\n", og_realname, name)
|
||||||
|
|
||||||
var destDir = fmt.Sprintf("/opt/packets/%s", og_realname)
|
var destDir = filepath.Join(cfg.Config.DataDir, og_realname)
|
||||||
|
|
||||||
f, err := os.Open(packagepath)
|
f, err := os.Open(packagepath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -1174,8 +1174,8 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
}
|
}
|
||||||
bar.Finish()
|
bar.Finish()
|
||||||
|
|
||||||
os.Rename(destDir, fmt.Sprintf("/opt/packets/%s", name))
|
os.Rename(destDir, filepath.Join(cfg.Config.DataDir, name))
|
||||||
destDir = fmt.Sprintf("/opt/packets/%s", name)
|
destDir = filepath.Join(cfg.Config.DataDir, name)
|
||||||
|
|
||||||
manifest.Serial = serial
|
manifest.Serial = serial
|
||||||
|
|
||||||
@@ -1184,12 +1184,12 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
os.WriteFile(fmt.Sprintf("%s/manifest.json", destDir), jsonData, 0777)
|
os.WriteFile(filepath.Join(destDir, "manifest.json"), jsonData, 0777)
|
||||||
|
|
||||||
script := fmt.Sprintf("%s/postinstall.sh", destDir)
|
script := fmt.Sprintf(filepath.Join(destDir, "postinstall.sh"), destDir)
|
||||||
|
|
||||||
os.Chmod(script, 0777)
|
os.Chmod(script, 0777)
|
||||||
os.Chmod(fmt.Sprintf("%s/remove.sh", destDir), 0777)
|
os.Chmod(fmt.Sprintf(filepath.Join(destDir, "remove.sh"), destDir), 0777)
|
||||||
|
|
||||||
fmt.Println("Making post install configuration...")
|
fmt.Println("Making post install configuration...")
|
||||||
cmd := exec.Command(script)
|
cmd := exec.Command(script)
|
||||||
@@ -1224,7 +1224,7 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
|
|
||||||
func SearchUpgrades(name string) error {
|
func SearchUpgrades(name string) error {
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", "/opt/packets/packets/index.db")
|
db, err := sql.Open("sqlite", filepath.Join(PacketsDir, "index.db"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user