Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugal-tweak.git;a=commitdiff;h=84cb418653ff32098ab96d250aae97ea26b8ea1e
commit 84cb418653ff32098ab96d250aae97ea26b8ea1e Author: bouleetbil <bouleet...@frogdev.info> Date: Thu Dec 15 20:58:06 2011 +0100 py-pacman.py *added some functions diff --git a/py-pacman/py-pacman.py b/py-pacman/py-pacman.py index 5c363e9..f08daf2 100755 --- a/py-pacman/py-pacman.py +++ b/py-pacman/py-pacman.py @@ -270,6 +270,7 @@ pacman_cb_db_register = CFUNCTYPE(ctypes.c_void_p, ctypes.c_char_p, POINTER(PM_D pacman_cb_log = CFUNCTYPE(ctypes.c_void_p, ctypes.c_ushort, ctypes.c_void_p); #pacman-g2 wrapper functions + def pacman_initialize(root): print_debug("pacman_initialize") return pacman.pacman_initialize(root) @@ -356,6 +357,19 @@ def pacman_trans_commit(data): pacman.pacman_trans_commit.argtypes = [POINTER(PM_LIST)] pacman.pacman_trans_commit.restype = ctypes.c_int return pacman.pacman_trans_commit(data) + +def pacman_fetch_pkgurl(url): + print_debug("pacman_fetch_pkgurl") + return pacman.pacman_fetch_pkgurl(url) + +def pacman_db_unregister(db): + print_debug("pacman_db_unregister") + return pacman.pacman_db_unregister(db) + +def pacman_fetch_url(pkg): + print_debug("pacman_fetch_url") + print_console("Donwload "+pacman_pkg_get_info(pkg,PM_PKG_NAME)) + print_not_yet() #end pacman-g2 wrapper @@ -372,7 +386,6 @@ printconsole=1 def pacman_init(): print_debug("pacman_init") - pacman_finally() if pacman_initialize(PM_ROOT) == -1: print_console("Can't initialise pacman-g2") sys.exit(0) @@ -415,7 +428,7 @@ def pacman_update_db(): def pacman_check_update(): print_debug("pacman_check_update") tab_PKG =[] - if pacman_trans_init(PM_TRANS_TYPE_SYNC, 0, None , None , None ) == -1 : + if pacman_trans_init(PM_TRANS_TYPE_SYNC, PM_TRANS_FLAG_NONE , None , None , None ) == -1 : print_console("Failed pacman_trans_init" ) return -1 if pacman_trans_sysupgrade() == -1 : @@ -458,17 +471,47 @@ def pacman_package_find(packagename): pkgs=pacman_search_pkg(packagename) for pkg in pkgs: if pacman_pkg_get_info(pkg,PM_PKG_NAME)==packagename : - return 1 + return pkg + return None + +def pacman_remove_pkg(packagename): + #TODO : can remove group pacman_db_readgrp pacman_grp_getinfo + #TODO : check if package is installed + print_debug("pacman_remove_pkg") + print_not_yet() return -1 - + print_console("uninstall "+packagename) + if pacman_trans_init(PM_TRANS_TYPE_REMOVE, PM_TRANS_FLAG_NONE, None, None, None) == -1 : + print_console("pacman_trans_init failed") + return -1 + data=PM_LIST() + pacman_trans_addtarget(packagename) + if pacman_trans_prepare(data)==-1: + print_console("pacman_trans_prepare failed") + pacman_print_error() + return -1 + packages = pacman_trans_getinfo(PM_TRANS_PACKAGES) + if packages==None : + print_console("Oops Packages list to uninstall is empty") + return -1 + if pacman_trans_commit(Data)==-1: + print_console("pacman_trans_commit failed") + pacman_print_error() + return -1 + print_console(packagename+" uninstall") + return 1 + def pacman_install_pkg(packagename): + #TODO can install group pacman_db_readgrp pacman_grp_getinfo print_debug("pacman_install_pkg") pacman_update_db() #for now install only one package - if pacman_package_find(packagename) == -1: + pkg = pacman_package_find(packagename) + if pkg == None: print_console("Can't find "+packagename) return -1 - print_console("Install "+packagename) + pacman_fetch_url(pkg) + print_console("Install "+pacman_pkg_get_info(pkg,PM_PKG_NAME)) #TODO : #added parameter for play with PM_TRANS_SYNC_XXX and PM_TRANS_FLAG_XXX #added callback @@ -477,7 +520,8 @@ def pacman_install_pkg(packagename): pacman_print_error() return -1 data=PM_LIST() - pacman_trans_addtarget(packagename) + if pacman_trans_addtarget(pacman_pkg_get_info(pkg,PM_PKG_NAME))==-1 : + print_console("Can't add " +pacman_pkg_get_info(pkg,PM_PKG_NAME)) print_debug("pacman_trans_prepare") if pacman_trans_prepare(data)==-1: print_console("pacman_trans_prepare failed") @@ -499,9 +543,9 @@ def pacman_install_pkg(packagename): return 1 def pacman_print_error(): + print_debug("pacman_print_error") + print pacman.pm_errno #FIXME pm_errno return some -1225212475 Oo - #print pacman.pacman_strerror(pacman.pm_errno) - return def pacman_started(): print_debug("pacman_started") @@ -541,6 +585,8 @@ def main(): help() if sys.argv[1] == "--install": check_user() + if sys.argv[1] == "--remove": + check_user() pacman_init() pacman_init_database() @@ -552,6 +598,8 @@ def main(): pacman_print_pkg(pacman_search_pkg(sys.argv[2])) if sys.argv[1] == "--install": pacman_install_pkg(sys.argv[2]) + if sys.argv[1] == "--remove": + pacman_remove_pkg(sys.argv[2]) pacman_finally() def help(): @@ -563,6 +611,7 @@ def help(): print "--checkupdate : see packages can be updated" print "--search PackageName: search PackageName" print "--install PackageName : install PackageName" + print "--remove PackageName : uninstall PackageName" sys.exit(0) def print_debug(textConsole): @@ -575,5 +624,8 @@ def print_console(textConsole): return print textConsole +def print_not_yet(): + print_console("not yet implemented") + #start main program main() _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git