User:Toofishes/libalpm interface

From ArchWiki
< User:Toofishes
Revision as of 17:39, 22 March 2007 by Toofishes (talk | contribs) (initial draft, pretty much copy of Aaron's page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This started as Aaron's original list, put here for easy editing by us. Please don't touch this unless you know what you are doing.

python style - converted obviously to object style C

NOTE: we need to differentiate between string lists and pkg lists

classes:
package #include "virtual" packages
    is_provision()?? #for virtual packages
    get/set:
    str = name()
    str = version()
    str = release()
    pkglist = depends() #or string list?
    pkglist = requires()
    pkglist = provides()
    ...etc.. all other properties

database
    add_server(url)
    remove_server(url)
    sync() #download
    pkglist = get_packages()
    strlist = get_groups()

Specialized lists? package_list? database_list? server_list?
list (C only)
    node = next()
    node = prev()
    node = tail()
    obj = data()

alpm
    ignore_package(name)
    no_upgrade(name)
    set_option(name, value)
    value = get_option(name)
    db = register_db(name)
    add_server(db, url) #same as db.add_server(url)
    remove_server(db, url) #same as db.remove_server(url)

    parse_config(file) #convienance for above option calls

    pkglist = search([strA, strB, strC, ...]) #multi search
    package = find_package(name)
    pkglist = what_provides(provide_name)
    pkglist = check_updates()
    install_from_url(url)
    install_package(package)
    remove_package(package)
    install_packages(pkglist)
    remove_packages(pkglist)
    package = package_from_file(filename)
    pkglist = resolve_dependancies(pkglist) #return uninstalled deps
    sync_databases() #download
    sync_database(db) #same as db.sync()
    dblist = get_databases()
    clean_cache(bool_superclean!)
    log_message(level, message) #needs a C shim for printf-like syntax
    *misc output functions*

TODO callbacks


utils #maybe expose this stuff?
    database_backend - interface... maybe we can write some backends in python!
    string_match #using the "MatchType" option from alpm