Skip to content

Golang implementation of parsing alpine APK packages and APKINDEX files

License

Notifications You must be signed in to change notification settings

martencassel/go-apkutils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go alpine APK Utils

go-apkutils is a library written in go for parsing and extracting content from APKs.

Overview

go-apkutils provides a few interfaces for handling alpine APK packages and APKINDEX files.

There is a highlevel Apk and ApkIndex struct that provides access to package and index information.

See Examples for some example code.

1. Extract metadata from an apk package file

	f, err := os.Open("curl-7.83.1-r1.apk")
	if err != nil {
		panic(err)
	}
	apk, err := apk.ReadApk(f)
	if err != nil {
		panic(err)
	}
	fmt.Println(apk)

2. Read apk index files

	f, err := os.Open("APKINDEX")
	if err != nil {
		panic(err)
	}
	index, err := index.ReadApkIndex(f)
	if err != nil {
		panic(err)
	}
	fmt.Println(index.Entries)

3. Write apk index files

    // List of apk names
    apkFile := []string{
        "curl-7.83.1-r1.apk",
        "gvim-8.2.5000-r0.apk",
        "strace-5.17-r0.apk",
    }
    // Create APKINDEX file
    f, err := os.OpenFile("APKINDEX.test", os.O_RDWR|os.O_CREATE, 0644)
    if err != nil {
        log.Fatalln("Error opening APKINDEX file:", err)
    }
    // Create a writer
    w := index.NewWriter(f)
    defer w.Close()
    for _, filePath := range apkFile {
        f, err := os.Open(filePath)
        if err != nil {
            log.Fatalln("Error opening file:", err)
        }
        apkFile, err := apk.ReadApk(f)
        if err != nil {
            log.Fatalln("Error reading apk file:", err)
        }
        w.WriteApk(apkFile)
    }
    w.Close()

About

Golang implementation of parsing alpine APK packages and APKINDEX files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages