def compile_install_depends_rec(self): query = qe.query() if self._depends == None : return for pkg in self._depends.keys() : self._depends[pkg].compile_install_depends_rec() if not query.test_installed_package( pkg ) : f = compile_sequence( self._depends[pkg] ) if f : install_sequence( self._depends[pkg] , confirm=False , asdep=True )
def main(): #test() options = args.parse_args() q = que.query() if options.version : print( " aurpy v%s" % glob.get_version() ) print( "------------------------------------") print( q.pacman_version() ) exit(0) if len( sys.argv ) <= 1 : exit(1) if options.aur : if len( options.packages ) > 0 : pkgs_list = sorted( list( OrderedDict.fromkeys( options.packages ).keys() ) ) isntall_aur_pkgs( pkgs_list ) exit(0) if options.aur and options.upgrades : full_aur_update() exit(1) argv = list( sys.argv ) argv.pop(0) ## call pacman .... if sum( [ options.database , options.query , options.remove , options.sync , options.deptest , options.upgrade ] ) > 1 : print( "error: only one operation may be used at a time" ) exit(1) if options.query or options.deptest or ( options.sync and options.info ): pacman.user_pacman( argv ) return 0 if options.database or options.upgrade or options.remove or options.sync : pacman.root_pacman( argv ) return 0 pacman.try_pacman( argv ) #tools.sync_pacman()
def _list_dependecies( self , dep ): query = qe.query() for d in self._pkg_data[dep] : if query.test_installed_package( d ) : self._pkg_data["%s_installed"%dep].append( d ) elif query.test_repo_package( d ) : self._pkg_data["%s_repo"%dep].append( d ) elif query.test_aur_package( d ) : self._pkg_data["%s_aur"%dep].append( d ) elif query.test_group_package( d ) : self._pkg_data["%s_group"%dep].append( d ) else : self._pkg_data["%s_nd"%dep].append( d )
def read_repo_data(self): config = cfg.aurpy_config() query = qe.query() if self.origin == glob.AUR : opener = urllib.request.FancyURLopener({}) f = opener.open( config.get_pkg_url( self.origin , self.name ) ) try : aur_html = f.read() self._aur_html = aur_html.decode() except : return False #print( self._aur_html ) r = '<h2>Package\s+Details\:\s+([\w\-]+)\s+([\w+\-\.\:]+)\s*<\/h2>' m = re.search( r , self._aur_html ) if m == None : raise NameError("Invalid AUR HTML format") self.name = m.group(1) self.repo_version = m.group(2) self.test_vcs() inst = query.test_installed_package( self.name ) if inst : self.installed_version = inst[1] return True else : inf = query.test_repo_package( self.name ) inst = query.test_installed_package( self.name ) if inf == None and inst == None : return False self.repo_version = inf[2] if inst : self.installed_version = inst[1] return True
def foreign(): query = qe.query() out = query.foreign() pkgs = dict() for p in out : pl = p.split() pkgs[pl[0]] = package() pkgs[pl[0]].name = pl[0] pkgs[pl[0]].installed_version = pl[1] return pkgs
def build_pkgs_dict( pkg_list , version=True , explicit=False ): query = qe.query() pkgs = dict() for p in pkg_list : pl = p.split() pkgs[pl[0]] = package() pkgs[pl[0]].name = pl[0] if version : pkgs[pl[0]].installed_version = pl[1] if explicit : pkgs[pl[0]].reason = glob.EXPLICIT return pkgs
def test(): q = que.query() print( q.test_aur_package( "yaourt" ) ) # cf = cfg.aurpy_config() # # cf.set_subpackages( "mainp" , [ "sub1" , "sub2" , "sub3" , "sub4" , "mainp" ] ) # cf.set_subpackages( "mainp2" , [ "sub12" , "sub22" , "sub32" , "sub42" , "mainp2" ] ) # # print( cf.is_subpackage( "sub12" ) ) # print( cf.has_subpackages( "mainp2" ) ) # # cf.insert_db_package( "ciao" , "/tmp" , "aur" , "aur_url" , "src_url" ) # cf.insert_db_package( "ciao2" , "/tmp" , "aur" , "aur_url" , "src_url" ) # for i in range(100) : # cf.insert_db_package( "ciao%d"%i , "/tmp" , "aur" , "aur_url" , "src_url" ) # # for i in range( 20 , 50 ) : # cf.set_subpackages( "ciao%d"%i , [ "ciao%d"%(i-30) ] ) exit(0)