testing new features
This commit is contained in:
		
							
								
								
									
										154
									
								
								cmd/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								cmd/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,154 @@
 | 
				
			|||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
 | 
						"path"
 | 
				
			||||||
 | 
						"path/filepath"
 | 
				
			||||||
 | 
						"runtime"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/go-git/go-git/v6"
 | 
				
			||||||
 | 
						"github.com/roboogg133/packets/pkg/install"
 | 
				
			||||||
 | 
						"github.com/roboogg133/packets/pkg/packet.lua.d"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const bipath = "/usr/bin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						log.SetFlags(log.Llongfile)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						switch os.Args[1] {
 | 
				
			||||||
 | 
						case "install":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							f, err := os.ReadFile(os.Args[2])
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							options := &packet.Config{
 | 
				
			||||||
 | 
								BinDir: bipath,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							pkg, err := packet.ReadPacket(f, options)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pkgId := pkg.Name + "@" + pkg.Version
 | 
				
			||||||
 | 
							if err := os.MkdirAll("_pkgtest/"+pkgId, 0777); err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							os.MkdirAll("_pkgtest/"+pkgId+"/src", 0777)
 | 
				
			||||||
 | 
							os.MkdirAll("_pkgtest/"+pkgId+"/packet", 0777)
 | 
				
			||||||
 | 
							if pkg.Plataforms != nil {
 | 
				
			||||||
 | 
								tmp := *pkg.Plataforms
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								plataform := tmp[packet.OperationalSystem(runtime.GOOS)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								for _, v := range *plataform.Sources {
 | 
				
			||||||
 | 
									src, err := packet.GetSource(v.Url, v.Method, v.Specs, 5)
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										log.Fatal(err)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if v.Method == "GET" || v.Method == "POST" {
 | 
				
			||||||
 | 
										f := src.([]byte)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if err := os.WriteFile("_pkgtest/"+pkgId+"/"+path.Base(v.Url), f, 0777); err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if err := packet.Dearchive("_pkgtest/"+pkgId+"/"+path.Base(v.Url), "_pkgtest/"+pkgId+"/src"); err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										os.Remove("_pkgtest/" + pkgId + "/" + path.Base(v.Url))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
 | 
										result, err := packet.GetSource(v.Url, v.Method, v.Specs, -213123)
 | 
				
			||||||
 | 
										if err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										reponame, _ := strings.CutSuffix(path.Base(v.Url), ".git")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										_, err = git.PlainClone("_pkgtest/"+pkgId+"/src/"+reponame, result.(*git.CloneOptions))
 | 
				
			||||||
 | 
										if err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if pkg.GlobalSources != nil {
 | 
				
			||||||
 | 
								for _, v := range *pkg.GlobalSources {
 | 
				
			||||||
 | 
									src, err := packet.GetSource(v.Url, v.Method, v.Specs, 5)
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										log.Fatal(err)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if v.Method == "GET" || v.Method == "POST" {
 | 
				
			||||||
 | 
										f := src.([]byte)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if err := os.WriteFile("_pkgtest/"+pkgId+"/"+path.Base(v.Url), f, 0777); err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if err := packet.Dearchive("_pkgtest/"+pkgId+"/"+path.Base(v.Url), "_pkgtest/"+pkgId+"/src"); err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										os.Remove("_pkgtest/" + pkgId + "/" + path.Base(v.Url))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
 | 
										result, err := packet.GetSource(v.Url, v.Method, v.Specs, -213123)
 | 
				
			||||||
 | 
										if err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										reponame, _ := strings.CutSuffix(path.Base(v.Url), ".git")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										_, err = git.PlainClone("_pkgtest/"+pkgId+"/src/"+reponame, result.(*git.CloneOptions))
 | 
				
			||||||
 | 
										if err != nil {
 | 
				
			||||||
 | 
											log.Fatal(err)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							packetdir, err := filepath.Abs("_pkgtest/" + pkgId + "/packet")
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							srcdir, err := filepath.Abs("_pkgtest/" + pkgId + "/src")
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							rootdir, err := filepath.Abs("_pkgtest/" + pkgId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pkg.ExecuteBuild(&packet.Config{
 | 
				
			||||||
 | 
								BinDir:     bipath,
 | 
				
			||||||
 | 
								PacketDir:  packetdir,
 | 
				
			||||||
 | 
								SourcesDir: srcdir,
 | 
				
			||||||
 | 
								RootDir:    rootdir,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pkg.ExecuteInstall(&packet.Config{
 | 
				
			||||||
 | 
								BinDir:     bipath,
 | 
				
			||||||
 | 
								PacketDir:  packetdir,
 | 
				
			||||||
 | 
								SourcesDir: srcdir,
 | 
				
			||||||
 | 
								RootDir:    rootdir,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							files, err := install.GetPackageFiles(packetdir)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if err := install.InstallFiles(files, packetdir); err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user