1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
package managers
import (
"errors"
"github.com/lxc/distrobuilder/shared"
)
type zypper struct {
common
}
func (m *zypper) load() error {
m.commands = managerCommands{
clean: "zypper",
install: "zypper",
refresh: "zypper",
remove: "zypper",
update: "zypper",
}
m.flags = managerFlags{
global: []string{
"--non-interactive",
"--gpg-auto-import-keys",
},
clean: []string{
"clean",
"-a",
},
install: []string{
"install",
"--allow-downgrade",
"--replacefiles",
},
remove: []string{
"remove",
},
refresh: []string{
"refresh",
},
update: []string{
"update",
},
}
return nil
}
func (m *zypper) manageRepository(repoAction shared.DefinitionPackagesRepository) error {
if repoAction.Type != "" && repoAction.Type != "zypper" {
return errors.New("Invalid repository Type")
}
if repoAction.Name == "" {
return errors.New("Invalid repository name")
}
if repoAction.URL == "" {
return errors.New("Invalid repository url")
}
return shared.RunCommand(m.ctx, nil, nil, "zypper", "ar", "--refresh", "--check", repoAction.URL, repoAction.Name)
}
|