zsvo/pkg/installer/repository_adapter.go
2026-03-13 15:18:31 +03:00

47 lines
1.1 KiB
Go

package installer
import (
"fmt"
"zsvo/pkg/deps"
)
// InstallerPackageRepository implements deps.PackageRepository for Installer
type InstallerPackageRepository struct {
installer *Installer
}
func NewInstallerPackageRepository(installer *Installer) *InstallerPackageRepository {
return &InstallerPackageRepository{installer: installer}
}
func (r *InstallerPackageRepository) GetInstalled() (map[string]*deps.PackageInfo, error) {
installed, err := r.installer.installedPkgInfosNoLock()
if err != nil {
return nil, fmt.Errorf("failed to get installed packages: %w", err)
}
result := make(map[string]*deps.PackageInfo, len(installed))
for name, info := range installed {
result[name] = &deps.PackageInfo{
Name: info.Name,
Version: info.Version,
Dependencies: info.Dependencies,
}
}
return result, nil
}
func (r *InstallerPackageRepository) GetPackage(name string) (*deps.PackageInfo, error) {
info, err := r.installer.getPackageInfoNoLock(name)
if err != nil {
return nil, err
}
return &deps.PackageInfo{
Name: info.Name,
Version: info.Version,
Dependencies: info.Dependencies,
}, nil
}