usable version with fixes to do
This commit is contained in:
93
src/main.go
93
src/main.go
@@ -89,6 +89,12 @@ func main() {
|
|||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
nameToQuery := os.Args[2]
|
nameToQuery := os.Args[2]
|
||||||
|
var exist bool
|
||||||
|
db.QueryRow("SELECT EXISTS(SELECT 1 FROM packages WHERE realname = ? LIMIT 1)", nameToQuery).Scan(&exist)
|
||||||
|
if exist {
|
||||||
|
QueryInstall(nameToQuery)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
rows, err := db.Query("SELECT realname, version, description FROM packages WHERE name = ?", nameToQuery)
|
rows, err := db.Query("SELECT realname, version, description FROM packages WHERE name = ?", nameToQuery)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -264,6 +270,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Println("founded upgrade")
|
||||||
QueryInstall(neo_realname)
|
QueryInstall(neo_realname)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -318,9 +325,6 @@ func Install(packagepath string, serial uint) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
name := manifest.Name
|
name := manifest.Name
|
||||||
version := manifest.Version
|
|
||||||
dependenc := manifest.Dependencies
|
|
||||||
family := manifest.Family
|
|
||||||
|
|
||||||
fmt.Printf("Installing %s...\n", name)
|
fmt.Printf("Installing %s...\n", name)
|
||||||
|
|
||||||
@@ -398,29 +402,12 @@ func Install(packagepath string, serial uint) error {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wManifest, err := os.Open(fmt.Sprintf("%s/manifest.json", destDir))
|
manifest.Serial = serial
|
||||||
|
|
||||||
|
jsonData, err := json.Marshal(manifest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
wManifest.Close()
|
|
||||||
|
|
||||||
json_dcoder := json.NewDecoder(wManifest)
|
|
||||||
|
|
||||||
var wManifestOPen Manifest
|
|
||||||
|
|
||||||
if err := json_dcoder.Decode(&wManifestOPen); err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
wManifestOPen = *manifest
|
|
||||||
wManifestOPen.Serial = serial
|
|
||||||
|
|
||||||
jsonData, err := json.Marshal(wManifestOPen)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
wManifest.Close()
|
|
||||||
|
|
||||||
os.WriteFile(fmt.Sprintf("%s/manifest.json", destDir), jsonData, 0777)
|
os.WriteFile(fmt.Sprintf("%s/manifest.json", destDir), jsonData, 0777)
|
||||||
|
|
||||||
@@ -429,12 +416,15 @@ func Install(packagepath string, serial uint) error {
|
|||||||
os.Chmod(script, 0777)
|
os.Chmod(script, 0777)
|
||||||
os.Chmod(fmt.Sprintf("%s/remove.sh", destDir), 0777)
|
os.Chmod(fmt.Sprintf("%s/remove.sh", destDir), 0777)
|
||||||
|
|
||||||
|
fmt.Println("\nExecute ", fmt.Sprintf("%s/postinstall.sh", destDir), "?")
|
||||||
|
|
||||||
fmt.Println("\nMaking post install configuration...")
|
fmt.Println("\nMaking post install configuration...")
|
||||||
cmd := exec.Command(script)
|
cmd := exec.Command(script)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
|
||||||
err = cmd.Run()
|
err = cmd.Run()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return fmt.Errorf("error exec postinstall script %e", err)
|
return fmt.Errorf("error exec postinstall script %e", err)
|
||||||
@@ -443,11 +433,11 @@ func Install(packagepath string, serial uint) error {
|
|||||||
fmt.Printf("Package %s fully installed you maybe run: \"source ~/.bashrc \"\n", name)
|
fmt.Printf("Package %s fully installed you maybe run: \"source ~/.bashrc \"\n", name)
|
||||||
|
|
||||||
var insert = Installed{
|
var insert = Installed{
|
||||||
Realname: name,
|
Realname: manifest.Name,
|
||||||
Version: version,
|
Version: manifest.Version,
|
||||||
Dependencies: dependenc,
|
Dependencies: manifest.Dependencies,
|
||||||
Family: family,
|
Family: manifest.Family,
|
||||||
Serial: serial,
|
Serial: manifest.Serial,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := AddToInstalledDB(insert); err != nil {
|
if err := AddToInstalledDB(insert); err != nil {
|
||||||
@@ -576,6 +566,21 @@ func QueryInstall(realname string) {
|
|||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
|
simplecheck, err := sql.Open("sqlite", "/opt/packets/packets/installed.db")
|
||||||
|
if err == nil {
|
||||||
|
|
||||||
|
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()
|
||||||
|
}
|
||||||
|
|
||||||
var mirrors string
|
var mirrors string
|
||||||
|
|
||||||
ResolvDependencies(realname)
|
ResolvDependencies(realname)
|
||||||
@@ -837,7 +842,7 @@ func AddToInstalledDB(insert Installed) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(insert.Dependencies) == 0 {
|
if len(insert.Dependencies) == 0 {
|
||||||
_, err = db.Exec("INSERT INTO packages (realname, version, family, serial) VALUES (?, ?)", insert.Realname, insert.Version, insert.Family, insert.Serial)
|
_, err = db.Exec("INSERT INTO packages (realname, version, family, serial) VALUES (?, ?, ?, ?)", insert.Realname, insert.Version, insert.Family, insert.Serial)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -851,7 +856,7 @@ func AddToInstalledDB(insert Installed) error {
|
|||||||
|
|
||||||
query = query[:len(query)-1]
|
query = query[:len(query)-1]
|
||||||
|
|
||||||
_, err = db.Exec("INSERT INTO packages (realname, version, dependencies, family, serial) VALUES (?, ?, ?)", insert.Realname, insert.Version, query, insert.Family, insert.Serial)
|
_, err = db.Exec("INSERT INTO packages (realname, version, dependencies, family, serial) VALUES (?, ?, ?, ?, ?)", insert.Realname, insert.Version, query, insert.Family, insert.Serial)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -978,9 +983,6 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
name := manifest.Name
|
name := manifest.Name
|
||||||
version := manifest.Version
|
|
||||||
dependenc := manifest.Dependencies
|
|
||||||
family := manifest.Family
|
|
||||||
|
|
||||||
fmt.Printf("Upgrading %s to %s...\n", og_realname, name)
|
fmt.Printf("Upgrading %s to %s...\n", og_realname, name)
|
||||||
|
|
||||||
@@ -1061,12 +1063,21 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
os.Rename(destDir, fmt.Sprintf("/opt/packets/%s", name))
|
os.Rename(destDir, fmt.Sprintf("/opt/packets/%s", name))
|
||||||
destDir = fmt.Sprintf("/opt/packets/%s", name)
|
destDir = fmt.Sprintf("/opt/packets/%s", name)
|
||||||
|
|
||||||
|
manifest.Serial = serial
|
||||||
|
|
||||||
|
jsonData, err := json.Marshal(manifest)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
os.WriteFile(fmt.Sprintf("%s/manifest.json", destDir), jsonData, 0777)
|
||||||
|
|
||||||
script := fmt.Sprintf("%s/postinstall.sh", destDir)
|
script := fmt.Sprintf("%s/postinstall.sh", destDir)
|
||||||
|
|
||||||
os.Chmod(script, 0777)
|
os.Chmod(script, 0777)
|
||||||
os.Chmod(fmt.Sprintf("%s/remove.sh", destDir), 0777)
|
os.Chmod(fmt.Sprintf("%s/remove.sh", destDir), 0777)
|
||||||
|
|
||||||
fmt.Println("\nMaking post install configuration...")
|
fmt.Println("Making post install configuration...")
|
||||||
cmd := exec.Command(script)
|
cmd := exec.Command(script)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
@@ -1078,13 +1089,13 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
|
|||||||
|
|
||||||
fmt.Printf("Package %s fully installed you maybe run: \"source ~/.bashrc \"\n", name)
|
fmt.Printf("Package %s fully installed you maybe run: \"source ~/.bashrc \"\n", name)
|
||||||
|
|
||||||
var insert Installed
|
var insert = Installed{
|
||||||
|
Realname: manifest.Name,
|
||||||
insert.Realname = name
|
Version: manifest.Version,
|
||||||
insert.Version = version
|
Dependencies: manifest.Dependencies,
|
||||||
insert.Dependencies = dependenc
|
Family: manifest.Family,
|
||||||
insert.Serial = serial
|
Serial: manifest.Serial,
|
||||||
insert.Family = family
|
}
|
||||||
|
|
||||||
_, err = db.Exec("DELETE FROM packages WHERE realname = ?", og_realname)
|
_, err = db.Exec("DELETE FROM packages WHERE realname = ?", og_realname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user