Minor Update 1
Some minor changes and bug fixes I've happened upon through my own testing. changes to main.go: ``` - change the CLI syntax for searching to be `allpac search {package name}` instead of `allpac search -package {package name}` - ensure when pacman doesn't find anything, it doesn't return an error. (pacman just exits with error code 1 when it doesn't find anything. Which is super silly but whatever) ``` changes to search.go: ``` - add some changes to ensure if pacman is "erroring" it's a real error. Not just pacman returning Exit code 1 because it didn't get a result. ```
This commit is contained in:
parent
50af1b9613
commit
67ce4f7038
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -35,3 +35,5 @@ go.work
|
||||||
# Built Visual Studio Code Extensions
|
# Built Visual Studio Code Extensions
|
||||||
*.vsix
|
*.vsix
|
||||||
|
|
||||||
|
cmd/allpac
|
||||||
|
cmd/allpac.txt
|
||||||
|
|
35
cmd/main.go
35
cmd/main.go
|
@ -8,9 +8,17 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"pixelridgesoftworks.com/AllPac/pkg/packagemanager"
|
"pixelridgesoftworks.com/AllPac/pkg/packagemanager"
|
||||||
|
"pixelridgesoftworks.com/AllPac/pkg/logger"
|
||||||
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// Initialize the logger
|
||||||
|
logFilePath := filepath.Join(os.Getenv("HOME"), ".allpac", "logs", "allpac.log")
|
||||||
|
if err := logger.Init(logFilePath); err != nil {
|
||||||
|
// If logger initialization fails, you can choose to exit the program or use the default logger
|
||||||
|
logger.Errorf("Failed to initialize logger: %v", err)
|
||||||
|
}
|
||||||
// Define flags for different commands
|
// Define flags for different commands
|
||||||
updateCmd := flag.NewFlagSet("update", flag.ExitOnError)
|
updateCmd := flag.NewFlagSet("update", flag.ExitOnError)
|
||||||
installCmd := flag.NewFlagSet("install", flag.ExitOnError)
|
installCmd := flag.NewFlagSet("install", flag.ExitOnError)
|
||||||
|
@ -32,7 +40,7 @@ func main() {
|
||||||
case "uninstall":
|
case "uninstall":
|
||||||
handleUninstall(uninstallCmd)
|
handleUninstall(uninstallCmd)
|
||||||
case "search":
|
case "search":
|
||||||
handleSearch(searchCmd)
|
handleSearch(searchCmd, os.Args[2:])
|
||||||
case "rebuild":
|
case "rebuild":
|
||||||
handleRebuild(aurRebuildCmd)
|
handleRebuild(aurRebuildCmd)
|
||||||
case "clean-aur":
|
case "clean-aur":
|
||||||
|
@ -155,24 +163,23 @@ func handleUninstall(cmd *flag.FlagSet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// handleSearch handles the search command for packages across different package managers
|
// handleSearch handles the search command for packages across different package managers
|
||||||
func handleSearch(cmd *flag.FlagSet) {
|
func handleSearch(cmd *flag.FlagSet, args []string) {
|
||||||
// Define a flag for the package name
|
|
||||||
packageName := cmd.String("package", "", "Name of the package to search")
|
|
||||||
|
|
||||||
// Parse the command line arguments
|
|
||||||
cmd.Parse(os.Args[2:])
|
|
||||||
|
|
||||||
// Check if the package name was provided
|
// Check if the package name was provided
|
||||||
if *packageName == "" {
|
if len(args) < 1 {
|
||||||
fmt.Println("You must specify a package name.")
|
fmt.Println("You must specify a package name.")
|
||||||
cmd.Usage()
|
cmd.Usage()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The package name is the first argument
|
||||||
|
packageName := args[0]
|
||||||
|
|
||||||
// Search in Pacman
|
// Search in Pacman
|
||||||
pacmanResults, err := packagemanager.SearchPacman(*packageName)
|
pacmanResults, err := packagemanager.SearchPacman(packageName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error searching in Pacman: %v\n", err)
|
logger.Errorf("Error searching in Pacman: %v", err)
|
||||||
|
} else if len(pacmanResults) == 0 {
|
||||||
|
fmt.Println("Pacman: No results found")
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("Pacman Results:")
|
fmt.Println("Pacman Results:")
|
||||||
for _, result := range pacmanResults {
|
for _, result := range pacmanResults {
|
||||||
|
@ -181,7 +188,7 @@ func handleSearch(cmd *flag.FlagSet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search in Snap
|
// Search in Snap
|
||||||
snapResults, err := packagemanager.SearchSnap(*packageName)
|
snapResults, err := packagemanager.SearchSnap(packageName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error searching in Snap: %v\n", err)
|
fmt.Printf("Error searching in Snap: %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
|
@ -192,7 +199,7 @@ func handleSearch(cmd *flag.FlagSet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search in Flatpak
|
// Search in Flatpak
|
||||||
flatpakResults, err := packagemanager.SearchFlatpak(*packageName)
|
flatpakResults, err := packagemanager.SearchFlatpak(packageName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error searching in Flatpak: %v\n", err)
|
fmt.Printf("Error searching in Flatpak: %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
|
@ -203,7 +210,7 @@ func handleSearch(cmd *flag.FlagSet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search in AUR
|
// Search in AUR
|
||||||
aurResults, err := packagemanager.SearchAUR(*packageName)
|
aurResults, err := packagemanager.SearchAUR(packageName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error searching in AUR: %v\n", err)
|
fmt.Printf("Error searching in AUR: %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -104,10 +104,16 @@ type AURPackage struct {
|
||||||
func SearchPacman(packageName string) ([]string, error) {
|
func SearchPacman(packageName string) ([]string, error) {
|
||||||
cmd := exec.Command("pacman", "-Ss", packageName)
|
cmd := exec.Command("pacman", "-Ss", packageName)
|
||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
|
||||||
logger.Errorf("error searching Pacman: %v", err)
|
// Check if the error is due to no results found
|
||||||
|
if err != nil && len(output) == 0 {
|
||||||
|
return nil, nil // No results is not an error in this context
|
||||||
|
} else if err != nil {
|
||||||
|
// Other errors are still treated as errors
|
||||||
|
logger.Errorf("Error searching Pacman: %v", err)
|
||||||
return nil, fmt.Errorf("error searching Pacman: %v", err)
|
return nil, fmt.Errorf("error searching Pacman: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return parsePacmanOutput(string(output)), nil
|
return parsePacmanOutput(string(output)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user