diff --git a/cmd/packets/database/execute.go b/cmd/packets/database/execute.go index 1e4153f..790a2f1 100644 --- a/cmd/packets/database/execute.go +++ b/cmd/packets/database/execute.go @@ -25,6 +25,7 @@ CREATE TABLE IF NOT EXISTS installed_packages( upload_time TEXT NOT NULL, installed_time INTEGER NOT NULL, image BLOB, + UNIQUE(name, version), UNIQUE(name, serial) ); diff --git a/cmd/packets/flags.go b/cmd/packets/flags.go index 8edd05d..dff93de 100644 --- a/cmd/packets/flags.go +++ b/cmd/packets/flags.go @@ -32,7 +32,11 @@ var configCmd = &cobra.Command{ id, err := database.GetPackageId(insertedName, db) if err != nil { - fmt.Println("Error getting package ID:", err) + if err == sql.ErrNoRows { + fmt.Printf("package %s not found\n", insertedName) + } else { + fmt.Println("Error getting package ID:", err) + } os.Exit(1) } @@ -42,6 +46,13 @@ var configCmd = &cobra.Command{ os.Exit(1) } + if raw, _ := cmd.Flags().GetBool("raw"); raw { + for _, flag := range flags { + fmt.Printf("%s->%s\n", flag.Name, flag.Path) + } + return + } + var all []list.Item for _, flag := range flags { @@ -51,25 +62,7 @@ var configCmd = &cobra.Command{ } all = append(all, item) } - /* - delegate1 := list.NewDefaultDelegate() - delegate1.Styles.NormalTitle = lipgloss.NewStyle(). - Foreground(lipgloss.Color("#FFFFFF")). - Background(lipgloss.Color("#000000")). - Margin(1) - delegate1.Styles.NormalDesc = lipgloss.NewStyle(). - Foreground(lipgloss.Color("#000000")) - delegate1.Styles.SelectedTitle = lipgloss.NewStyle(). - Foreground(lipgloss.Color("#0056FF")). - Bold(true). - Blink(true) - - delegate1.Styles.SelectedDesc = lipgloss.NewStyle(). - Foreground(lipgloss.Color("#FFFFFF")). - Bold(true). - Faint(true) - */ m := model{list: list.New(all, list.NewDefaultDelegate(), 0, 0)} m.list.Title = "Configuration files" diff --git a/cmd/packets/main.go b/cmd/packets/main.go index d4e6e1a..acfe249 100644 --- a/cmd/packets/main.go +++ b/cmd/packets/main.go @@ -298,9 +298,20 @@ var packCmd = &cobra.Command{ }, } +var listCmd = &cobra.Command{ + Use: "list", + Short: "List all installed packages", + Long: "List all installed packages", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("odasd") + + }, +} + func main() { rootCmd.AddCommand(executeCmd) rootCmd.AddCommand(removeCmd) + configCmd.Flags().Bool("raw", false, "show config names and dir in stdout") rootCmd.AddCommand(configCmd) rootCmd.AddCommand(devCmd) diff --git a/go.mod b/go.mod index 52879ab..b68a8db 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,9 @@ go 1.25.3 require github.com/yuin/gopher-lua v1.1.1 require ( + github.com/charmbracelet/bubbles v0.21.0 + github.com/charmbracelet/bubbletea v1.3.10 + github.com/charmbracelet/lipgloss v1.1.0 github.com/go-git/go-git/v6 v6.0.0-20251029213217-0bbfc0875edd github.com/klauspost/compress v1.18.1 github.com/mattn/go-sqlite3 v1.14.32 @@ -19,10 +22,7 @@ require ( github.com/ProtonMail/go-crypto v1.3.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect - github.com/charmbracelet/bubbles v0.21.0 // indirect - github.com/charmbracelet/bubbletea v1.3.10 // indirect github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect - github.com/charmbracelet/lipgloss v1.1.0 // indirect github.com/charmbracelet/x/ansi v0.10.1 // indirect github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect github.com/charmbracelet/x/term v0.2.1 // indirect diff --git a/go.sum b/go.sum index f04ea3f..416c1a6 100644 --- a/go.sum +++ b/go.sum @@ -10,6 +10,8 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= +github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA= github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= @@ -18,12 +20,12 @@ github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4p github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= -github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE= -github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8= github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= +github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ= +github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= @@ -63,6 +65,8 @@ github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -111,6 +115,8 @@ github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 h1:MDc5xs78ZrZr3HMQugiXOAkSZtfTpbJLDr/lwfgO53E= +golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/main.go b/main.go deleted file mode 100644 index 7cca710..0000000 --- a/main.go +++ /dev/null @@ -1,10 +0,0 @@ -package main - -import ( - "fmt" - "runtime" -) - -func main() { - fmt.Println(runtime.GOARCH) -} diff --git a/pkg/dependency_solve/resolve.go b/pkg/dependency_solve/resolve.go new file mode 100644 index 0000000..770e3ba --- /dev/null +++ b/pkg/dependency_solve/resolve.go @@ -0,0 +1,14 @@ +package dependencysolve + +import "github.com/roboogg133/packets/pkg/packet.lua.d" + +type InstallInstruction struct { + Build []string + Install []string + Conflict []string +} + +func ResolveDependencies(dependencies packet.PkgDependencies) InstallInstruction { + // Implementation goes here + return InstallInstruction{} +}