Now you can't install two packages from the same family
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"crypto/sha256"
|
||||
"database/sql"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/fs"
|
||||
@@ -98,6 +99,10 @@ type Manifest struct {
|
||||
} `toml:"Hooks"`
|
||||
}
|
||||
|
||||
// errors
|
||||
|
||||
var ErrNotInstalled = errors.New("this package isn't installed")
|
||||
|
||||
var serialPass uint
|
||||
var cfg ConfigTOML
|
||||
var PacketsDir string
|
||||
@@ -270,7 +275,11 @@ var removeCmd = &cobra.Command{
|
||||
|
||||
err := Unninstall(realname)
|
||||
if err != nil {
|
||||
if err == ErrNotInstalled {
|
||||
fmt.Println(err.Error())
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -862,37 +871,45 @@ func QueryInstall(realname string) {
|
||||
defer db.Close()
|
||||
|
||||
simplecheck, err := sql.Open("sqlite", filepath.Join(PacketsDir, "installed.db"))
|
||||
if err == nil {
|
||||
if err != nil {
|
||||
|
||||
log.Fatal(err)
|
||||
|
||||
}
|
||||
var exist bool
|
||||
simplecheck.QueryRow("SELECT EXISTS(SELECT 1 FROM packages WHERE realname = ? LIMIT 1)", realname).Scan(&exist)
|
||||
|
||||
if exist {
|
||||
fmt.Println("Alredy installed!")
|
||||
simplecheck.Close()
|
||||
return
|
||||
}
|
||||
|
||||
simplecheck.Close()
|
||||
} else {
|
||||
simplecheck.Close()
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer simplecheck.Close()
|
||||
|
||||
var mirrors string
|
||||
var serial uint
|
||||
var family string
|
||||
|
||||
ResolvDependencies(realname)
|
||||
|
||||
err = db.QueryRow("SELECT mirrors FROM packages WHERE realname = ?", realname).Scan(&mirrors)
|
||||
err = db.QueryRow("SELECT mirrors, serial, family FROM packages WHERE realname = ?", realname).Scan(&mirrors, &serial, &family)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
return
|
||||
log.Fatal(err)
|
||||
}
|
||||
var serial uint
|
||||
err = db.QueryRow("SELECT serial FROM packages WHERE realname = ?", realname).Scan(&serial)
|
||||
|
||||
if !isUpgrade {
|
||||
|
||||
var recognize string
|
||||
|
||||
err = simplecheck.QueryRow("SELECT realname FROM packages WHERE family = ?", family).Scan(&recognize)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
return
|
||||
if err == sql.ErrNoRows {
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
fmt.Println(":: Older package found, upgrading.")
|
||||
isUpgrade = true
|
||||
upgradeHelper = recognize
|
||||
}
|
||||
}
|
||||
|
||||
if !strings.Contains(mirrors, " ") {
|
||||
@@ -1304,7 +1321,7 @@ func Unninstall(realname string) error {
|
||||
}
|
||||
|
||||
if !exist {
|
||||
return fmt.Errorf("this package isn't installed")
|
||||
return ErrNotInstalled
|
||||
}
|
||||
fmt.Printf(":: Sure you will remove %s ? [Y/n] ", realname)
|
||||
var answer string
|
||||
@@ -1438,7 +1455,7 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
||||
}
|
||||
|
||||
if !exist {
|
||||
return fmt.Errorf("this package isn't installed")
|
||||
return ErrNotInstalled
|
||||
}
|
||||
|
||||
if cfg.Config.LastDataDir != cfg.Config.DataDir {
|
||||
@@ -1670,7 +1687,7 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
fmt.Printf("\nPackage %s fully installed", name)
|
||||
fmt.Printf("\nPackage %s fully installed\n", name)
|
||||
|
||||
var insert = Installed{
|
||||
Realname: manifest.Info.Name,
|
||||
|
||||
Reference in New Issue
Block a user