Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
9ea7bcc
Fix code formatting issues in PR #12
bluet May 30, 2025
87c284c
Add comprehensive CI/CD setup with code formatting checks
bluet May 30, 2025
661b8d8
Add .dccache to gitignore
bluet May 30, 2025
bebb04a
Fix security and functionality issues from PR review
bluet May 30, 2025
88b4d58
Focus on package manager tools instead of OS-specific detection
bluet May 30, 2025
4153e7b
Add project documentation and testing infrastructure
bluet May 30, 2025
d8b0128
Update documentation to reflect current state and tool-focused philos…
bluet May 30, 2025
de93361
Update Go version to 1.24.3 (latest stable)
bluet May 30, 2025
dfe09f0
Remove outdated .go-version file
bluet May 30, 2025
a9a8ca0
Apply code formatting (gofmt + goimports)
bluet May 30, 2025
96e1aa9
Fix TestParseFindOutput package ordering issue
bluet May 30, 2025
41a0985
remove temp file
bluet May 30, 2025
7275ffe
Fix non-deterministic package ordering in ParseFindOutput
bluet May 30, 2025
58ebcd4
Fix documentation issues found in PR review
bluet May 30, 2025
552392e
Fix remaining nitpick issues from PR review
bluet May 30, 2025
2391ec2
Fix Go version in .tool-versions
bluet May 30, 2025
432aa6e
Revert Go version - 1.24.3 was correct
bluet May 30, 2025
9aac6b2
Align Go version requirements with .tool-versions
bluet May 30, 2025
b4ff570
Update CI workflows and go.mod to Go 1.23/1.24
bluet May 30, 2025
4f4e365
Modernize development infrastructure and documentation
bluet May 30, 2025
6a4ac33
Upgrade to Apache License 2.0 and enhance README badges
bluet May 30, 2025
89b0b4a
Sync all documentation with latest project status
bluet May 30, 2025
1bde898
Address PR #13 review comments
bluet May 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions syspkg.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// if err != nil {
// log.Fatal(err)
// }
// aptManager,err := sysPkg.GetPackageManager("apt")
// aptManager, err := sysPkg.GetPackageManager("apt")
package syspkg

import (
Expand Down Expand Up @@ -99,7 +99,7 @@ func (s *sysPkgImpl) FindPackageManagers(include IncludeOptions) (map[string]Pac

// GetPackageManager returns a PackageManager instance by its name (e.g., "apt", "snap", "flatpak", etc.).
// if name is empty, return the first available
func (s *sysPkgImpl) GetPackageManager(name string) (PackageManager,error) {
func (s *sysPkgImpl) GetPackageManager(name string) (PackageManager, error) {
var pm PackageManager

// if there are no package managers, return before accessing non existing properties
Expand All @@ -116,7 +116,7 @@ func (s *sysPkgImpl) GetPackageManager(name string) (PackageManager,error) {
sort.Strings(keys)
pm = s.pms[keys[0]]
} else {
pm,found := s.pms[name]
pm, found := s.pms[name]
if !found {
return pm, errors.New("no such package manager")
}
Expand Down
48 changes: 24 additions & 24 deletions syspkg_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,95 +53,95 @@ func TestNewPackageManager(t *testing.T) {
// if we are on any other distro, we should have nothing

if OSInfo.Distribution == "ubuntu" || OSInfo.Distribution == "debian" || OSInfo.Distribution == "mint" || OSInfo.Distribution == "PopOS" || OSInfo.Distribution == "elementary" || OSInfo.Distribution == "Zorin" || OSInfo.Distribution == "ChromeOS" {
pm,err:=s.GetPackageManager("apt")
pm, err := s.GetPackageManager("apt")

if err != nil && pm == nil {
pm,err:=s.GetPackageManager("snap")
pm, err := s.GetPackageManager("snap")

if err!=nil && pm == nil {
pm,err:=s.GetPackageManager("flatpak")
if err != nil && pm == nil {
pm, err := s.GetPackageManager("flatpak")

if err!=nil && pm == nil {
if err != nil && pm == nil {
t.Fatalf("apt, snap, or flatpak package manager not found")
}
}
}
} else if OSInfo.Distribution == "fedora" || OSInfo.Distribution == "centos" || OSInfo.Distribution == "rhel" || OSInfo.Distribution == "rockylinux" || OSInfo.Distribution == "almalinux" || OSInfo.Distribution == "amazon linux" || OSInfo.Distribution == "oracle linux" || OSInfo.Distribution == "scientific linux" || OSInfo.Distribution == "cloudlinux" {
pm,err:=s.GetPackageManager("dnf")
pm, err := s.GetPackageManager("dnf")
if err != nil && pm == nil {
pm,err:=s.GetPackageManager("yum")
pm, err := s.GetPackageManager("yum")
if err != nil && pm == nil {
t.Fatalf("dnf or yum package manager not found")
}
}
} else if OSInfo.Distribution == "opensuse" {
pm,err:=s.GetPackageManager("zypper")
pm, err := s.GetPackageManager("zypper")
if err != nil && pm == nil {
t.Fatalf("zypper package manager not found")
}
} else if OSInfo.Distribution == "alpine" {
pm,err:=s.GetPackageManager("apk")
pm, err := s.GetPackageManager("apk")
if err != nil && pm == nil {
t.Fatalf("apk package manager not found")
}
} else if OSInfo.Distribution == "arch" {
pm,err:=s.GetPackageManager("pacman")
pm, err := s.GetPackageManager("pacman")
if err != nil && pm == nil {
t.Fatalf("pacman package manager not found")
}
} else if OSInfo.Distribution == "gentoo" {
pm,err:=s.GetPackageManager("emerge")
pm, err := s.GetPackageManager("emerge")
if err != nil && pm == nil {
t.Fatalf("emerge package manager not found")
}
} else if OSInfo.Distribution == "slackware" {
pm,err:=s.GetPackageManager("slackpkg")
pm, err := s.GetPackageManager("slackpkg")
if err != nil && pm == nil {
t.Fatalf("slackpkg package manager not found")
}
} else if OSInfo.Distribution == "void" {
pm,err:=s.GetPackageManager("xbps")
pm, err := s.GetPackageManager("xbps")
if err != nil && pm == nil {
t.Fatalf("xbps package manager not found")
}
} else if OSInfo.Distribution == "solus" {
pm,err:=s.GetPackageManager("eopkg")
pm, err := s.GetPackageManager("eopkg")
if err != nil && pm == nil {
t.Fatalf("eopkg package manager not found")
}
} else if OSInfo.Distribution == "freebsd" || OSInfo.Distribution == "dragonfly" || OSInfo.Distribution == "termux" {
pm,err:=s.GetPackageManager("pkg")
pm, err := s.GetPackageManager("pkg")
if err != nil && pm == nil {
t.Fatalf("pkg package manager not found")
}
} else if OSInfo.Distribution == "openbsd" || OSInfo.Distribution == "netbsd" {
pm,err:=s.GetPackageManager("pkg_add")
pm, err := s.GetPackageManager("pkg_add")
if err != nil && pm == nil {
t.Fatalf("pkg_add package manager not found")
}
} else if OSInfo.Distribution == "macos" {
pm,err:=s.GetPackageManager("brew")
pm, err := s.GetPackageManager("brew")
if err != nil && pm == nil {
t.Fatalf("brew package manager not found")
}
} else if OSInfo.Distribution == "windows" {
pm,err:=s.GetPackageManager("chocolatey")
if err != nil && pm == nil {
pm,err:=s.GetPackageManager("scoop")
if err != nil && pm == nil {
pm,err:=s.GetPackageManager("winget")
pm, err := s.GetPackageManager("chocolatey")
if err != nil && pm == nil {
pm, err := s.GetPackageManager("scoop")
if err != nil && pm == nil {
pm, err := s.GetPackageManager("winget")
if err != nil && pm == nil {
t.Fatalf("chocolatey, scoop, or winget package manager not found")
}
}
}
} else if OSInfo.Distribution == "android" {
pm,err:=s.GetPackageManager("f-droid")
pm, err := s.GetPackageManager("f-droid")
if err != nil && pm == nil {
t.Fatalf("f-droid package manager not found")
}
} else if OSInfo.Distribution == "ios" {
pm,err:=s.GetPackageManager("cydia")
pm, err := s.GetPackageManager("cydia")
if err != nil && pm == nil {
t.Fatalf("cydia package manager not found")
}
Expand Down
Loading