libubpf-sys 0.9.611+2c7a276

Rust bindings to libubpf from IO Visor
Documentation
#!/usr/bin/env python
"""
eBPF disassembler

Reads the given file or stdin. The input should be raw eBPF
instructions (not an ELF object file).
"""

import argparse
import os
import sys

ROOT_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")
if os.path.exists(os.path.join(ROOT_DIR, "ubpf")):
    # Running from source tree
    sys.path.insert(0, ROOT_DIR)

import ubpf.disassembler

def main():
    parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
    parser.add_argument('input', type=argparse.FileType('rb'), default='-', nargs='?')
    parser.add_argument('output', type=argparse.FileType('w'), default='-', nargs='?')
    parser.add_argument('--verbose', dest='verbose', action='store_true', default=False)
    args = parser.parse_args()

    if args.input.name == "<stdin>" and hasattr(args.input, "buffer"):
        # python 3
        input_ = args.input.buffer.read()
    else:
        input_ = args.input.read()

    print(f"{args.verbose=}")
    args.output.write(ubpf.disassembler.disassemble(input_, args.verbose))

if __name__ == "__main__":
    main()