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()
 | 
			
		||||
 | 
			
		||||
		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)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
@@ -264,6 +270,7 @@ func main() {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		fmt.Println("founded upgrade")
 | 
			
		||||
		QueryInstall(neo_realname)
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
@@ -318,9 +325,6 @@ func Install(packagepath string, serial uint) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	name := manifest.Name
 | 
			
		||||
	version := manifest.Version
 | 
			
		||||
	dependenc := manifest.Dependencies
 | 
			
		||||
	family := manifest.Family
 | 
			
		||||
 | 
			
		||||
	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 {
 | 
			
		||||
		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)
 | 
			
		||||
 | 
			
		||||
@@ -429,12 +416,15 @@ func Install(packagepath string, serial uint) error {
 | 
			
		||||
	os.Chmod(script, 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...")
 | 
			
		||||
	cmd := exec.Command(script)
 | 
			
		||||
	cmd.Stdout = os.Stdout
 | 
			
		||||
	cmd.Stderr = os.Stderr
 | 
			
		||||
 | 
			
		||||
	err = cmd.Run()
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(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)
 | 
			
		||||
 | 
			
		||||
	var insert = Installed{
 | 
			
		||||
		Realname:     name,
 | 
			
		||||
		Version:      version,
 | 
			
		||||
		Dependencies: dependenc,
 | 
			
		||||
		Family:       family,
 | 
			
		||||
		Serial:       serial,
 | 
			
		||||
		Realname:     manifest.Name,
 | 
			
		||||
		Version:      manifest.Version,
 | 
			
		||||
		Dependencies: manifest.Dependencies,
 | 
			
		||||
		Family:       manifest.Family,
 | 
			
		||||
		Serial:       manifest.Serial,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := AddToInstalledDB(insert); err != nil {
 | 
			
		||||
@@ -576,6 +566,21 @@ func QueryInstall(realname string) {
 | 
			
		||||
	}
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
	ResolvDependencies(realname)
 | 
			
		||||
@@ -837,7 +842,7 @@ func AddToInstalledDB(insert Installed) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	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 {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
@@ -851,7 +856,7 @@ func AddToInstalledDB(insert Installed) error {
 | 
			
		||||
 | 
			
		||||
	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 {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -978,9 +983,6 @@ func Upgrade(packagepath string, og_realname string, serial uint) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	name := manifest.Name
 | 
			
		||||
	version := manifest.Version
 | 
			
		||||
	dependenc := manifest.Dependencies
 | 
			
		||||
	family := manifest.Family
 | 
			
		||||
 | 
			
		||||
	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))
 | 
			
		||||
	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)
 | 
			
		||||
 | 
			
		||||
	os.Chmod(script, 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.Stdout = os.Stdout
 | 
			
		||||
	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)
 | 
			
		||||
 | 
			
		||||
	var insert Installed
 | 
			
		||||
 | 
			
		||||
	insert.Realname = name
 | 
			
		||||
	insert.Version = version
 | 
			
		||||
	insert.Dependencies = dependenc
 | 
			
		||||
	insert.Serial = serial
 | 
			
		||||
	insert.Family = family
 | 
			
		||||
	var insert = Installed{
 | 
			
		||||
		Realname:     manifest.Name,
 | 
			
		||||
		Version:      manifest.Version,
 | 
			
		||||
		Dependencies: manifest.Dependencies,
 | 
			
		||||
		Family:       manifest.Family,
 | 
			
		||||
		Serial:       manifest.Serial,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err = db.Exec("DELETE FROM packages WHERE realname =  ?", og_realname)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user