Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/knqyf263/go-rpmdb

RPM DB bindings for go
https://github.com/knqyf263/go-rpmdb

Last synced: 13 days ago
JSON representation

RPM DB bindings for go

Awesome Lists containing this project

README

        

# go-rpmdb
Library for enumerating packages in an RPM DB `Packages` file (without bindings).

```go
package main

import (
"fmt"
"log"

rpmdb "github.com/knqyf263/go-rpmdb/pkg"
)

func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}
func run() error {
db, err := rpmdb.Open("./Packages")
if err != nil {
return err
}
pkgList, err := db.ListPackages()
if err != nil {
return err
}
defer db.Close()

fmt.Println("Packages:")
for _, pkg := range pkgList {
fmt.Printf("\t%+v\n", *pkg)
// {Epoch:0 Name:m4 Version:1.4.16 Release:10.el7 Arch:x86_64}
// {Epoch:0 Name:zip Version:3.0 Release:11.el7 Arch:x86_64}
// ...
}
fmt.Printf("[Total Packages: %d]\n", len(pkgList))
return nil
}
```