makedeb-srcinfo

Crates.iomakedeb-srcinfo
lib.rsmakedeb-srcinfo
version0.8.1
sourcesrc
created_at2022-08-06 02:44:52.597514
updated_at2022-11-15 16:08:42.521206
descriptionRust + Python library for parsing makedeb-styled .SRCINFO files
homepagehttps://github.com/makedeb/makedeb-srcinfo
repositoryhttps://github.com/makedeb/makedeb-srcinfo
max_upload_size
id639663
size62,419
Kavplex Bot (kavplex)

documentation

README

makedeb-srcinfo

makedeb-srcinfo is a library for Rust and Python to parse makedeb-style .SRCINFO files.

The library itself is written in Rust, and bindings for Python are made possible via PyO3 and Maturin.

Build status

Crates.io Rust docs

PyPI

Usage

Installation

You'll first need to install the library before using it. Installation instructions will change depending on if you're using the Rust or Python library:

Rust

cargo add makedeb-srcinfo

Python

pip install makedeb-srcinfo

Using the library

The Rust and Python libraries are designed to look quite similar to each other, both interfaces use the same function/class names, and should only differ in how the languages themselves are designed.

Rust

See the documentation on Docs.rs for full usage instructions.

use makedeb_srcinfo::SrcInfo;
use std::fs;

fn main() {
    let file = fs::read_to_string(".SRCINFO").unwrap();
    let srcinfo = SrcInfo::new(&file).unwrap();
    
    // Get the package base.
    println!("The package base for this package is {}.", srcinfo.get_string("pkgbase").unwrap());

    // Get any dependencies.
    match srcinfo.get_array("makedepends") {
        Some(makedepends) => {
            println!("Found {} build dependencies:", makedepends.len());

            for dep in makedepends {
                println!("- {}", dep);
            };
        },
        None => {
            println!("Found no dependencies.");
        }
    }
}

Python

Note Help is currently needed to get Python documentation automatically published on new releases. Please see https://github.com/makedeb/makedeb-srcinfo/issues/3 if you'd like to help.

#!/usr/bin/env python3
from makedeb_srcinfo import SrcInfo

with open(".SRCINFO") as file:
    data = file.read()

srcinfo = SrcInfo(data)

# Get the package base.
pkgbase = srcinfo.get_string("pkgbase")
print(f"The package base for this package is {pkgbase}.")

# Get any dependencies.
makedepends = srcinfo.get_array("makedepends")

if len(makedepends) == 0:
    print("Found no build dependencies.")
else:
    print(f"Found {len(makedepends)} build dependencies:")

    for dep in makedepends:
        print(f"- {dep}")
Commit count: 19

cargo fmt