Golint fixes

This commit is contained in:
James Shubin
2016-03-09 17:22:02 -05:00
parent e60dda5027
commit 23647445d7
4 changed files with 100 additions and 102 deletions

View File

@@ -403,7 +403,7 @@ func (obj *FileResAutoEdges) Next() []ResUUID {
return nil return nil
} }
value := obj.data[obj.pointer] value := obj.data[obj.pointer]
obj.pointer += 1 obj.pointer++
return []ResUUID{value} // we return one, even though api supports N return []ResUUID{value} // we return one, even though api supports N
} }
@@ -432,7 +432,7 @@ func (obj *FileRes) AutoEdges() AutoEdge {
values := PathSplitFullReversed(obj.GetPath()) // build it values := PathSplitFullReversed(obj.GetPath()) // build it
_, values = values[0], values[1:] // get rid of first value which is me! _, values = values[0], values[1:] // get rid of first value which is me!
for _, x := range values { for _, x := range values {
var reversed bool = true // cheat by passing a pointer var reversed = true // cheat by passing a pointer
data = append(data, &FileUUID{ data = append(data, &FileUUID{
BaseUUID: BaseUUID{ BaseUUID: BaseUUID{
name: obj.GetName(), name: obj.GetName(),

View File

@@ -21,7 +21,6 @@
package main package main
import ( import (
"errors"
"fmt" "fmt"
"github.com/godbus/dbus" "github.com/godbus/dbus"
"log" "log"
@@ -141,12 +140,12 @@ type Conn struct {
conn *dbus.Conn conn *dbus.Conn
} }
// struct that is returned by PackagesToPackageIds in the map values // struct that is returned by PackagesToPackageIDs in the map values
type PkPackageIdActionData struct { type PkPackageIDActionData struct {
Found bool Found bool
Installed bool Installed bool
Version string Version string
PackageId string PackageID string
Newest bool Newest bool
} }
@@ -263,7 +262,7 @@ func (bus *Conn) CreateTransaction() (dbus.ObjectPath, error) {
} }
func (bus *Conn) ResolvePackages(packages []string, filter uint64) ([]string, error) { func (bus *Conn) ResolvePackages(packages []string, filter uint64) ([]string, error) {
packageIds := []string{} packageIDs := []string{}
ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :( ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :(
interfacePath, err := bus.CreateTransaction() // emits Destroy on close interfacePath, err := bus.CreateTransaction() // emits Destroy on close
if err != nil { if err != nil {
@@ -299,18 +298,18 @@ loop:
if signal.Name == FmtTransactionMethod("Package") { if signal.Name == FmtTransactionMethod("Package") {
//pkg_int, ok := signal.Body[0].(int) //pkg_int, ok := signal.Body[0].(int)
packageId, ok := signal.Body[1].(string) packageID, ok := signal.Body[1].(string)
// format is: name;version;arch;data // format is: name;version;arch;data
if !ok { if !ok {
continue loop continue loop
} }
//comment, ok := signal.Body[2].(string) //comment, ok := signal.Body[2].(string)
for _, p := range packageIds { for _, p := range packageIDs {
if packageId == p { if packageID == p {
continue loop // duplicate! continue loop // duplicate!
} }
} }
packageIds = append(packageIds, packageId) packageIDs = append(packageIDs, packageID)
} else if signal.Name == FmtTransactionMethod("Finished") { } else if signal.Name == FmtTransactionMethod("Finished") {
// TODO: should we wait for the Destroy signal? // TODO: should we wait for the Destroy signal?
break loop break loop
@@ -318,24 +317,24 @@ loop:
// should already be broken // should already be broken
break loop break loop
} else { } else {
return []string{}, errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return []string{}, fmt.Errorf("PackageKit: Error: %v", signal.Body)
} }
} }
} }
return packageIds, nil return packageIDs, nil
} }
func (bus *Conn) IsInstalledList(packages []string) ([]bool, error) { func (bus *Conn) IsInstalledList(packages []string) ([]bool, error) {
var filter uint64 = 0 var filter uint64 // initializes at the "zero" value of 0
filter += PK_FILTER_ENUM_ARCH // always search in our arch filter += PK_FILTER_ENUM_ARCH // always search in our arch
packageIds, e := bus.ResolvePackages(packages, filter) packageIDs, e := bus.ResolvePackages(packages, filter)
if e != nil { if e != nil {
return nil, errors.New(fmt.Sprintf("ResolvePackages error: %v", e)) return nil, fmt.Errorf("ResolvePackages error: %v", e)
} }
var m map[string]int = make(map[string]int) var m = make(map[string]int)
for _, packageId := range packageIds { for _, packageID := range packageIDs {
s := strings.Split(packageId, ";") s := strings.Split(packageID, ";")
//if len(s) != 4 { continue } // this would be a bug! //if len(s) != 4 { continue } // this would be a bug!
pkg := s[0] pkg := s[0]
flags := strings.Split(s[3], ":") flags := strings.Split(s[3], ":")
@@ -371,8 +370,8 @@ func (bus *Conn) IsInstalled(pkg string) (bool, error) {
return p[0], nil return p[0], nil
} }
// install list of packages by packageId // install list of packages by packageID
func (bus *Conn) InstallPackages(packageIds []string, transactionFlags uint64) error { func (bus *Conn) InstallPackages(packageIDs []string, transactionFlags uint64) error {
ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :( ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :(
interfacePath, err := bus.CreateTransaction() // emits Destroy on close interfacePath, err := bus.CreateTransaction() // emits Destroy on close
@@ -384,7 +383,7 @@ func (bus *Conn) InstallPackages(packageIds []string, transactionFlags uint64) e
bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals) bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals)
obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path
call := obj.Call(FmtTransactionMethod("InstallPackages"), 0, transactionFlags, packageIds) call := obj.Call(FmtTransactionMethod("InstallPackages"), 0, transactionFlags, packageIDs)
if call.Err != nil { if call.Err != nil {
return call.Err return call.Err
} }
@@ -400,7 +399,7 @@ loop:
} }
if signal.Name == FmtTransactionMethod("ErrorCode") { if signal.Name == FmtTransactionMethod("ErrorCode") {
return errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return fmt.Errorf("PackageKit: Error: %v", signal.Body)
} else if signal.Name == FmtTransactionMethod("Package") { } else if signal.Name == FmtTransactionMethod("Package") {
// a package was installed... // a package was installed...
// only start the timer once we're here... // only start the timer once we're here...
@@ -411,23 +410,23 @@ loop:
} else if signal.Name == FmtTransactionMethod("Destroy") { } else if signal.Name == FmtTransactionMethod("Destroy") {
return nil // success return nil // success
} else { } else {
return errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return fmt.Errorf("PackageKit: Error: %v", signal.Body)
} }
case _ = <-TimeAfterOrBlock(timeout): case _ = <-TimeAfterOrBlock(timeout):
if finished { if finished {
log.Println("PackageKit: Timeout: InstallPackages: Waiting for 'Destroy'") log.Println("PackageKit: Timeout: InstallPackages: Waiting for 'Destroy'")
return nil // got tired of waiting for Destroy return nil // got tired of waiting for Destroy
} }
return errors.New(fmt.Sprintf("PackageKit: Timeout: InstallPackages: %v", strings.Join(packageIds, ", "))) return fmt.Errorf("PackageKit: Timeout: InstallPackages: %v", strings.Join(packageIDs, ", "))
} }
} }
} }
// remove list of packages // remove list of packages
func (bus *Conn) RemovePackages(packageIds []string, transactionFlags uint64) error { func (bus *Conn) RemovePackages(packageIDs []string, transactionFlags uint64) error {
var allowDeps bool = true // TODO: configurable var allowDeps = true // TODO: configurable
var autoremove bool = false // unsupported on GNU/Linux var autoremove = false // unsupported on GNU/Linux
ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :( ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :(
interfacePath, err := bus.CreateTransaction() // emits Destroy on close interfacePath, err := bus.CreateTransaction() // emits Destroy on close
if err != nil { if err != nil {
@@ -438,7 +437,7 @@ func (bus *Conn) RemovePackages(packageIds []string, transactionFlags uint64) er
bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals) bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals)
obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path
call := obj.Call(FmtTransactionMethod("RemovePackages"), 0, transactionFlags, packageIds, allowDeps, autoremove) call := obj.Call(FmtTransactionMethod("RemovePackages"), 0, transactionFlags, packageIDs, allowDeps, autoremove)
if call.Err != nil { if call.Err != nil {
return call.Err return call.Err
} }
@@ -453,7 +452,7 @@ loop:
} }
if signal.Name == FmtTransactionMethod("ErrorCode") { if signal.Name == FmtTransactionMethod("ErrorCode") {
return errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return fmt.Errorf("PackageKit: Error: %v", signal.Body)
} else if signal.Name == FmtTransactionMethod("Package") { } else if signal.Name == FmtTransactionMethod("Package") {
// a package was installed... // a package was installed...
continue loop continue loop
@@ -464,7 +463,7 @@ loop:
// should already be broken // should already be broken
break loop break loop
} else { } else {
return errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return fmt.Errorf("PackageKit: Error: %v", signal.Body)
} }
} }
} }
@@ -472,7 +471,7 @@ loop:
} }
// update list of packages to versions that are specified // update list of packages to versions that are specified
func (bus *Conn) UpdatePackages(packageIds []string, transactionFlags uint64) error { func (bus *Conn) UpdatePackages(packageIDs []string, transactionFlags uint64) error {
ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :( ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :(
interfacePath, err := bus.CreateTransaction() interfacePath, err := bus.CreateTransaction()
if err != nil { if err != nil {
@@ -483,7 +482,7 @@ func (bus *Conn) UpdatePackages(packageIds []string, transactionFlags uint64) er
bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals) bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals)
obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path
call := obj.Call(FmtTransactionMethod("UpdatePackages"), 0, transactionFlags, packageIds) call := obj.Call(FmtTransactionMethod("UpdatePackages"), 0, transactionFlags, packageIDs)
if call.Err != nil { if call.Err != nil {
return call.Err return call.Err
} }
@@ -498,7 +497,7 @@ loop:
} }
if signal.Name == FmtTransactionMethod("ErrorCode") { if signal.Name == FmtTransactionMethod("ErrorCode") {
return errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return fmt.Errorf("PackageKit: Error: %v", signal.Body)
} else if signal.Name == FmtTransactionMethod("Package") { } else if signal.Name == FmtTransactionMethod("Package") {
} else if signal.Name == FmtTransactionMethod("Finished") { } else if signal.Name == FmtTransactionMethod("Finished") {
// TODO: should we wait for the Destroy signal? // TODO: should we wait for the Destroy signal?
@@ -507,7 +506,7 @@ loop:
// should already be broken // should already be broken
break loop break loop
} else { } else {
return errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return fmt.Errorf("PackageKit: Error: %v", signal.Body)
} }
} }
} }
@@ -515,7 +514,7 @@ loop:
} }
// get the list of files that are contained inside a list of packageids // get the list of files that are contained inside a list of packageids
func (bus *Conn) GetFilesByPackageId(packageIds []string) (files map[string][]string, err error) { func (bus *Conn) GetFilesByPackageID(packageIDs []string) (files map[string][]string, err error) {
// NOTE: the maximum number of files in an RPM is 52116 in Fedora 23 // NOTE: the maximum number of files in an RPM is 52116 in Fedora 23
// https://gist.github.com/purpleidea/b98e60dcd449e1ac3b8a // https://gist.github.com/purpleidea/b98e60dcd449e1ac3b8a
ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :( ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :(
@@ -528,7 +527,7 @@ func (bus *Conn) GetFilesByPackageId(packageIds []string) (files map[string][]st
bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals) bus.matchSignal(ch, interfacePath, PkIfaceTransaction, signals)
obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path obj := bus.GetBus().Object(PkIface, interfacePath) // pass in found transaction path
call := obj.Call(FmtTransactionMethod("GetFiles"), 0, packageIds) call := obj.Call(FmtTransactionMethod("GetFiles"), 0, packageIDs)
if call.Err != nil { if call.Err != nil {
err = call.Err err = call.Err
return return
@@ -546,10 +545,10 @@ loop:
} }
if signal.Name == FmtTransactionMethod("ErrorCode") { if signal.Name == FmtTransactionMethod("ErrorCode") {
err = errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) err = fmt.Errorf("PackageKit: Error: %v", signal.Body)
return return
// one signal returned per packageId found... // one signal returned per packageID found...
} else if signal.Name == FmtTransactionMethod("Files") { } else if signal.Name == FmtTransactionMethod("Files") {
if len(signal.Body) != 2 { // bad data if len(signal.Body) != 2 { // bad data
continue loop continue loop
@@ -571,7 +570,7 @@ loop:
// should already be broken // should already be broken
break loop break loop
} else { } else {
err = errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) err = fmt.Errorf("PackageKit: Error: %v", signal.Body)
return return
} }
} }
@@ -584,7 +583,7 @@ func (bus *Conn) GetUpdates(filter uint64) ([]string, error) {
if PK_DEBUG { if PK_DEBUG {
log.Println("PackageKit: GetUpdates()") log.Println("PackageKit: GetUpdates()")
} }
packageIds := []string{} packageIDs := []string{}
ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :( ch := make(chan *dbus.Signal, PkBufferSize) // we need to buffer :(
interfacePath, err := bus.CreateTransaction() interfacePath, err := bus.CreateTransaction()
if err != nil { if err != nil {
@@ -610,22 +609,22 @@ loop:
} }
if signal.Name == FmtTransactionMethod("ErrorCode") { if signal.Name == FmtTransactionMethod("ErrorCode") {
return nil, errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return nil, fmt.Errorf("PackageKit: Error: %v", signal.Body)
} else if signal.Name == FmtTransactionMethod("Package") { } else if signal.Name == FmtTransactionMethod("Package") {
//pkg_int, ok := signal.Body[0].(int) //pkg_int, ok := signal.Body[0].(int)
packageId, ok := signal.Body[1].(string) packageID, ok := signal.Body[1].(string)
// format is: name;version;arch;data // format is: name;version;arch;data
if !ok { if !ok {
continue loop continue loop
} }
//comment, ok := signal.Body[2].(string) //comment, ok := signal.Body[2].(string)
for _, p := range packageIds { // optional? for _, p := range packageIDs { // optional?
if packageId == p { if packageID == p {
continue loop // duplicate! continue loop // duplicate!
} }
} }
packageIds = append(packageIds, packageId) packageIDs = append(packageIDs, packageID)
} else if signal.Name == FmtTransactionMethod("Finished") { } else if signal.Name == FmtTransactionMethod("Finished") {
// TODO: should we wait for the Destroy signal? // TODO: should we wait for the Destroy signal?
break loop break loop
@@ -633,17 +632,17 @@ loop:
// should already be broken // should already be broken
break loop break loop
} else { } else {
return nil, errors.New(fmt.Sprintf("PackageKit: Error: %v", signal.Body)) return nil, fmt.Errorf("PackageKit: Error: %v", signal.Body)
} }
} }
} }
return packageIds, nil return packageIDs, nil
} }
// this is a helper function that *might* be generally useful outside mgmtconfig // this is a helper function that *might* be generally useful outside mgmtconfig
// packageMap input has the package names as keys and requested states as values // packageMap input has the package names as keys and requested states as values
// these states can be installed, uninstalled, newest or a requested version str // these states can be installed, uninstalled, newest or a requested version str
func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint64) (map[string]*PkPackageIdActionData, error) { func (bus *Conn) PackagesToPackageIDs(packageMap map[string]string, filter uint64) (map[string]*PkPackageIDActionData, error) {
count := 0 count := 0
packages := make([]string, len(packageMap)) packages := make([]string, len(packageMap))
for k := range packageMap { // lol, golang has no hash.keys() function! for k := range packageMap { // lol, golang has no hash.keys() function!
@@ -656,28 +655,28 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
} }
if PK_DEBUG { if PK_DEBUG {
log.Printf("PackageKit: PackagesToPackageIds(): %v", strings.Join(packages, ", ")) log.Printf("PackageKit: PackagesToPackageIDs(): %v", strings.Join(packages, ", "))
} }
resolved, e := bus.ResolvePackages(packages, filter) resolved, e := bus.ResolvePackages(packages, filter)
if e != nil { if e != nil {
return nil, errors.New(fmt.Sprintf("Resolve error: %v", e)) return nil, fmt.Errorf("Resolve error: %v", e)
} }
found := make([]bool, count) // default false found := make([]bool, count) // default false
installed := make([]bool, count) installed := make([]bool, count)
version := make([]string, count) version := make([]string, count)
usePackageId := make([]string, count) usePackageID := make([]string, count)
newest := make([]bool, count) // default true newest := make([]bool, count) // default true
for i := range newest { for i := range newest {
newest[i] = true // assume, for now newest[i] = true // assume, for now
} }
var index int var index int
for _, packageId := range resolved { for _, packageID := range resolved {
index = -1 index = -1
//log.Printf("* %v", packageId) //log.Printf("* %v", packageID)
// format is: name;version;arch;data // format is: name;version;arch;data
s := strings.Split(packageId, ";") s := strings.Split(packageID, ";")
//if len(s) != 4 { continue } // this would be a bug! //if len(s) != 4 { continue } // this would be a bug!
pkg, ver, arch, data := s[0], s[1], s[2], s[3] pkg, ver, arch, data := s[0], s[1], s[2], s[3]
// we might need to allow some of this, eg: i386 .deb on amd64 // we might need to allow some of this, eg: i386 .deb on amd64
@@ -695,14 +694,14 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
} }
state := packageMap[pkg] // lookup the requested state/version state := packageMap[pkg] // lookup the requested state/version
if state == "" { if state == "" {
return nil, errors.New(fmt.Sprintf("Empty package state for %v", pkg)) return nil, fmt.Errorf("Empty package state for %v", pkg)
} }
found[index] = true found[index] = true
stateIsVersion := (state != "installed" && state != "uninstalled" && state != "newest") // must be a ver. string stateIsVersion := (state != "installed" && state != "uninstalled" && state != "newest") // must be a ver. string
if stateIsVersion { if stateIsVersion {
if state == ver && ver != "" { // we match what we want... if state == ver && ver != "" { // we match what we want...
usePackageId[index] = packageId usePackageID[index] = packageID
} }
} }
@@ -712,7 +711,7 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
// state of "uninstalled" matched during CheckApply, and // state of "uninstalled" matched during CheckApply, and
// states of "installed" and "newest" for fileList // states of "installed" and "newest" for fileList
if !stateIsVersion { if !stateIsVersion {
usePackageId[index] = packageId // save for later usePackageID[index] = packageID // save for later
} }
} else { // not installed... } else { // not installed...
if !stateIsVersion { if !stateIsVersion {
@@ -721,7 +720,7 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
// then this section can run more than once... // then this section can run more than once...
// in that case, don't worry, we'll choose the // in that case, don't worry, we'll choose the
// right value in the "updates" section below! // right value in the "updates" section below!
usePackageId[index] = packageId usePackageID[index] = packageID
} }
} }
} }
@@ -733,12 +732,12 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
// FIXME: https://github.com/hughsie/PackageKit/issues/116 // FIXME: https://github.com/hughsie/PackageKit/issues/116
updates, e := bus.GetUpdates(filter) updates, e := bus.GetUpdates(filter)
if e != nil { if e != nil {
return nil, errors.New(fmt.Sprintf("Updates error: %v", e)) return nil, fmt.Errorf("Updates error: %v", e)
} }
for _, packageId := range updates { for _, packageID := range updates {
//log.Printf("* %v", packageId) //log.Printf("* %v", packageID)
// format is: name;version;arch;data // format is: name;version;arch;data
s := strings.Split(packageId, ";") s := strings.Split(packageID, ";")
//if len(s) != 4 { continue } // this would be a bug! //if len(s) != 4 { continue } // this would be a bug!
pkg, _, _, _ := s[0], s[1], s[2], s[3] pkg, _, _, _ := s[0], s[1], s[2], s[3]
for index := range packages { // find pkg if it exists for index := range packages { // find pkg if it exists
@@ -747,7 +746,7 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
newest[index] = false newest[index] = false
if state == "installed" || state == "newest" { if state == "installed" || state == "newest" {
// fix up in case above wasn't correct! // fix up in case above wasn't correct!
usePackageId[index] = packageId usePackageID[index] = packageID
} }
break break
} }
@@ -756,8 +755,8 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
// skip if the "newest" filter was used, otherwise we might need fixing // skip if the "newest" filter was used, otherwise we might need fixing
// this check is for packages that need to verify their "newest" status // this check is for packages that need to verify their "newest" status
// we need to know this so we can install the correct newest packageId! // we need to know this so we can install the correct newest packageID!
recursion := make(map[string]*PkPackageIdActionData) recursion := make(map[string]*PkPackageIDActionData)
if !(filter&PK_FILTER_ENUM_NEWEST == PK_FILTER_ENUM_NEWEST) { if !(filter&PK_FILTER_ENUM_NEWEST == PK_FILTER_ENUM_NEWEST) {
checkPackages := []string{} checkPackages := []string{}
filteredPackageMap := make(map[string]string) filteredPackageMap := make(map[string]string)
@@ -779,17 +778,17 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
// but that's basically what recursion here could do too! // but that's basically what recursion here could do too!
if len(checkPackages) > 0 { if len(checkPackages) > 0 {
if PK_DEBUG { if PK_DEBUG {
log.Printf("PackageKit: PackagesToPackageIds(): Recurse: %v", strings.Join(checkPackages, ", ")) log.Printf("PackageKit: PackagesToPackageIDs(): Recurse: %v", strings.Join(checkPackages, ", "))
} }
recursion, e = bus.PackagesToPackageIds(filteredPackageMap, filter+PK_FILTER_ENUM_NEWEST) recursion, e = bus.PackagesToPackageIDs(filteredPackageMap, filter+PK_FILTER_ENUM_NEWEST)
if e != nil { if e != nil {
return nil, errors.New(fmt.Sprintf("Recursion error: %v", e)) return nil, fmt.Errorf("Recursion error: %v", e)
} }
} }
} }
// fix up and build result format // fix up and build result format
result := make(map[string]*PkPackageIdActionData) result := make(map[string]*PkPackageIDActionData)
for index, pkg := range packages { for index, pkg := range packages {
if !found[index] || !installed[index] { if !found[index] || !installed[index] {
@@ -800,11 +799,11 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
if lookup, ok := recursion[pkg]; ok { if lookup, ok := recursion[pkg]; ok {
result[pkg] = lookup result[pkg] = lookup
} else { } else {
result[pkg] = &PkPackageIdActionData{ result[pkg] = &PkPackageIDActionData{
Found: found[index], Found: found[index],
Installed: installed[index], Installed: installed[index],
Version: version[index], Version: version[index],
PackageId: usePackageId[index], PackageID: usePackageID[index],
Newest: newest[index], Newest: newest[index],
} }
} }
@@ -813,7 +812,7 @@ func (bus *Conn) PackagesToPackageIds(packageMap map[string]string, filter uint6
return result, nil return result, nil
} }
// does flag exist inside data portion of packageId field? // does flag exist inside data portion of packageID field?
func FlagInData(flag, data string) bool { func FlagInData(flag, data string) bool {
flags := strings.Split(data, ":") flags := strings.Split(data, ":")
for _, f := range flags { for _, f := range flags {

35
pkg.go
View File

@@ -70,14 +70,14 @@ func (obj *PkgRes) Init() {
return return
} }
packageIds := []string{data.PackageId} // just one for now packageIDs := []string{data.PackageID} // just one for now
filesMap, err := bus.GetFilesByPackageId(packageIds) filesMap, err := bus.GetFilesByPackageID(packageIDs)
if err != nil { if err != nil {
// FIXME: return error? // FIXME: return error?
log.Fatalf("Can't run GetFilesByPackageId: %v", err) log.Fatalf("Can't run GetFilesByPackageID: %v", err)
return return
} }
if files, ok := filesMap[data.PackageId]; ok { if files, ok := filesMap[data.PackageID]; ok {
obj.fileList = DirifyFileList(files, false) obj.fileList = DirifyFileList(files, false)
} }
} }
@@ -129,7 +129,6 @@ func (obj *PkgRes) Watch() {
obj.SetState(resStateWatching) // reset obj.SetState(resStateWatching) // reset
select { select {
case event := <-ch: case event := <-ch:
// FIXME: ask packagekit for info on what packages changed // FIXME: ask packagekit for info on what packages changed
if DEBUG { if DEBUG {
log.Printf("Pkg[%v]: Event: %v", obj.GetName(), event.Name) log.Printf("Pkg[%v]: Event: %v", obj.GetName(), event.Name)
@@ -171,18 +170,18 @@ func (obj *PkgRes) Watch() {
} }
} }
func (obj *PkgRes) PkgMappingHelper(bus *Conn) (*PkPackageIdActionData, error) { func (obj *PkgRes) PkgMappingHelper(bus *Conn) (*PkPackageIDActionData, error) {
var packageMap = map[string]string{ var packageMap = map[string]string{
obj.Name: obj.State, // key is pkg name, value is pkg state obj.Name: obj.State, // key is pkg name, value is pkg state
} }
var filter uint64 = 0 var filter uint64 // initializes at the "zero" value of 0
filter += PK_FILTER_ENUM_ARCH // always search in our arch (optional!) filter += PK_FILTER_ENUM_ARCH // always search in our arch (optional!)
// we're requesting latest version, or to narrow down install choices! // we're requesting latest version, or to narrow down install choices!
if obj.State == "newest" || obj.State == "installed" { if obj.State == "newest" || obj.State == "installed" {
// if we add this, we'll still see older packages if installed // if we add this, we'll still see older packages if installed
// this is an optimization, and is *optional*, this logic is // this is an optimization, and is *optional*, this logic is
// handled inside of PackagesToPackageIds now automatically! // handled inside of PackagesToPackageIDs now automatically!
filter += PK_FILTER_ENUM_NEWEST // only search for newest packages filter += PK_FILTER_ENUM_NEWEST // only search for newest packages
} }
if !obj.AllowNonFree { if !obj.AllowNonFree {
@@ -191,15 +190,15 @@ func (obj *PkgRes) PkgMappingHelper(bus *Conn) (*PkPackageIdActionData, error) {
if !obj.AllowUnsupported { if !obj.AllowUnsupported {
filter += PK_FILTER_ENUM_SUPPORTED filter += PK_FILTER_ENUM_SUPPORTED
} }
result, e := bus.PackagesToPackageIds(packageMap, filter) result, e := bus.PackagesToPackageIDs(packageMap, filter)
if e != nil { if e != nil {
return nil, errors.New(fmt.Sprintf("Can't run PackagesToPackageIds: %v", e)) return nil, fmt.Errorf("Can't run PackagesToPackageIDs: %v", e)
} }
data, ok := result[obj.Name] // lookup single package data, ok := result[obj.Name] // lookup single package
// package doesn't exist, this is an error! // package doesn't exist, this is an error!
if !ok || !data.Found { if !ok || !data.Found {
return nil, errors.New(fmt.Sprintf("Can't find package named '%s'.", obj.Name)) return nil, fmt.Errorf("Can't find package named '%s'.", obj.Name)
} }
return data, nil return data, nil
@@ -224,7 +223,7 @@ func (obj *PkgRes) CheckApply(apply bool) (stateok bool, err error) {
data, err := obj.PkgMappingHelper(bus) data, err := obj.PkgMappingHelper(bus)
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("The PkgMappingHelper failed with: %v.", err)) return false, fmt.Errorf("The PkgMappingHelper failed with: %v.", err)
} }
// obj.State == "installed" || "uninstalled" || "newest" || "4.2-1.fc23" // obj.State == "installed" || "uninstalled" || "newest" || "4.2-1.fc23"
@@ -247,7 +246,7 @@ func (obj *PkgRes) CheckApply(apply bool) (stateok bool, err error) {
} }
} }
if data.PackageId == "" { if data.PackageID == "" {
return false, errors.New("Can't find package id to use.") return false, errors.New("Can't find package id to use.")
} }
@@ -258,8 +257,8 @@ func (obj *PkgRes) CheckApply(apply bool) (stateok bool, err error) {
// apply portion // apply portion
log.Printf("%v[%v]: Apply", obj.Kind(), obj.GetName()) log.Printf("%v[%v]: Apply", obj.Kind(), obj.GetName())
packageList := []string{data.PackageId} packageList := []string{data.PackageID}
var transactionFlags uint64 = 0 var transactionFlags uint64 // initializes at the "zero" value of 0
if !obj.AllowUntrusted { // allow if !obj.AllowUntrusted { // allow
transactionFlags += PK_TRANSACTION_FLAG_ENUM_ONLY_TRUSTED transactionFlags += PK_TRANSACTION_FLAG_ENUM_ONLY_TRUSTED
} }
@@ -267,7 +266,7 @@ func (obj *PkgRes) CheckApply(apply bool) (stateok bool, err error) {
log.Printf("%v[%v]: Set: %v...", obj.Kind(), obj.GetName(), obj.State) log.Printf("%v[%v]: Set: %v...", obj.Kind(), obj.GetName(), obj.State)
switch obj.State { switch obj.State {
case "uninstalled": // run remove case "uninstalled": // run remove
// NOTE: packageId is different than when installed, because now // NOTE: packageID is different than when installed, because now
// it has the "installed" flag added to the data portion if it!! // it has the "installed" flag added to the data portion if it!!
err = bus.RemovePackages(packageList, transactionFlags) err = bus.RemovePackages(packageList, transactionFlags)
@@ -325,7 +324,7 @@ func (obj *PkgResAutoEdges) Next() []ResUUID {
var result []ResUUID var result []ResUUID
// return UUID's for whatever is in obj.fileList // return UUID's for whatever is in obj.fileList
for _, x := range obj.fileList { for _, x := range obj.fileList {
var reversed bool = false // cheat by passing a pointer var reversed = false // cheat by passing a pointer
result = append(result, &FileUUID{ result = append(result, &FileUUID{
BaseUUID: BaseUUID{ BaseUUID: BaseUUID{
name: obj.name, name: obj.name,
@@ -397,7 +396,7 @@ func (obj *PkgRes) AutoEdges() AutoEdge {
// add matches for any svc resources found in pkg definition! // add matches for any svc resources found in pkg definition!
var svcUUIDs []ResUUID var svcUUIDs []ResUUID
for _, x := range ReturnSvcInFileList(obj.fileList) { for _, x := range ReturnSvcInFileList(obj.fileList) {
var reversed bool = false var reversed = false
svcUUIDs = append(svcUUIDs, &SvcUUID{ svcUUIDs = append(svcUUIDs, &SvcUUID{
BaseUUID: BaseUUID{ BaseUUID: BaseUUID{
name: obj.GetName(), name: obj.GetName(),

20
svc.go
View File

@@ -229,7 +229,7 @@ func (obj *SvcRes) CheckApply(apply bool) (stateok bool, err error) {
conn, err := systemd.NewSystemdConnection() // needs root access conn, err := systemd.NewSystemdConnection() // needs root access
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("Failed to connect to systemd: %v", err)) return false, fmt.Errorf("Failed to connect to systemd: %v", err)
} }
defer conn.Close() defer conn.Close()
@@ -237,13 +237,13 @@ func (obj *SvcRes) CheckApply(apply bool) (stateok bool, err error) {
loadstate, err := conn.GetUnitProperty(svc, "LoadState") loadstate, err := conn.GetUnitProperty(svc, "LoadState")
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("Failed to get load state: %v", err)) return false, fmt.Errorf("Failed to get load state: %v", err)
} }
// NOTE: we have to compare variants with other variants, they are really strings... // NOTE: we have to compare variants with other variants, they are really strings...
var notFound = (loadstate.Value == dbus.MakeVariant("not-found")) var notFound = (loadstate.Value == dbus.MakeVariant("not-found"))
if notFound { if notFound {
return false, errors.New(fmt.Sprintf("Failed to find svc: %v", svc)) return false, fmt.Errorf("Failed to find svc: %v", svc)
} }
// XXX: check svc "enabled at boot" or not status... // XXX: check svc "enabled at boot" or not status...
@@ -251,7 +251,7 @@ func (obj *SvcRes) CheckApply(apply bool) (stateok bool, err error) {
//conn.GetUnitProperties(svc) //conn.GetUnitProperties(svc)
activestate, err := conn.GetUnitProperty(svc, "ActiveState") activestate, err := conn.GetUnitProperty(svc, "ActiveState")
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("Failed to get active state: %v", err)) return false, fmt.Errorf("Failed to get active state: %v", err)
} }
var running = (activestate.Value == dbus.MakeVariant("active")) var running = (activestate.Value == dbus.MakeVariant("active"))
@@ -278,7 +278,7 @@ func (obj *SvcRes) CheckApply(apply bool) (stateok bool, err error) {
} }
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("Unable to change startup status: %v", err)) return false, fmt.Errorf("Unable to change startup status: %v", err)
} }
// XXX: do we need to use a buffered channel here? // XXX: do we need to use a buffered channel here?
@@ -287,12 +287,12 @@ func (obj *SvcRes) CheckApply(apply bool) (stateok bool, err error) {
if obj.State == "running" { if obj.State == "running" {
_, err = conn.StartUnit(svc, "fail", result) _, err = conn.StartUnit(svc, "fail", result)
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("Failed to start unit: %v", err)) return false, fmt.Errorf("Failed to start unit: %v", err)
} }
} else if obj.State == "stopped" { } else if obj.State == "stopped" {
_, err = conn.StopUnit(svc, "fail", result) _, err = conn.StopUnit(svc, "fail", result)
if err != nil { if err != nil {
return false, errors.New(fmt.Sprintf("Failed to stop unit: %v", err)) return false, fmt.Errorf("Failed to stop unit: %v", err)
} }
} }
@@ -301,7 +301,7 @@ func (obj *SvcRes) CheckApply(apply bool) (stateok bool, err error) {
return false, errors.New("Systemd service action result is nil") return false, errors.New("Systemd service action result is nil")
} }
if status != "done" { if status != "done" {
return false, errors.New(fmt.Sprintf("Unknown systemd return string: %v", status)) return false, fmt.Errorf("Unknown systemd return string: %v", status)
} }
// XXX: also set enabled on boot // XXX: also set enabled on boot
@@ -342,7 +342,7 @@ func (obj *SvcResAutoEdges) Next() []ResUUID {
return nil return nil
} }
value := obj.data[obj.pointer] value := obj.data[obj.pointer]
obj.pointer += 1 obj.pointer++
return []ResUUID{value} // we return one, even though api supports N return []ResUUID{value} // we return one, even though api supports N
} }
@@ -372,7 +372,7 @@ func (obj *SvcRes) AutoEdges() AutoEdge {
fmt.Sprintf("/usr/lib/systemd/system/%s.service", obj.Name), // pkg default fmt.Sprintf("/usr/lib/systemd/system/%s.service", obj.Name), // pkg default
} }
for _, x := range svcFiles { for _, x := range svcFiles {
var reversed bool = true var reversed = true
data = append(data, &FileUUID{ data = append(data, &FileUUID{
BaseUUID: BaseUUID{ BaseUUID: BaseUUID{
name: obj.GetName(), name: obj.GetName(),