[Gelistirici] pisi değişikliği nasıl

Oguz Yarimtepe oguzyarimtepe at gmail.com
16 Tem 2010 Cum 21:30:31 EEST


On Fri, 16 Jul 2010 14:05:47 -0400
S.Çağlar Onur <caglar at pardus.org.tr> wrote:

> listeyi
> kullanmaya devam edin lutfen.

Tamam, işte svn diff sonucu. 

Index: pisi/db/installdb.py
===================================================================
--- pisi/db/installdb.py	(revision 31095)
+++ pisi/db/installdb.py	(working copy)
@@ -157,6 +157,16 @@
     def get_config_files(self, package):
         files = self.get_files(package)
         return filter(lambda x: x.type == 'config', files.list)
+    
+    def search_in_package_names(self, term):
+        """
+        Case insensitive search in the package names
+        """
+        for name in self.list_installed():
+            doc = piksemel.parse(os.path.join(self.package_path(name), ctx.const.metadata_xml))
+            pkg_name = doc.getTag('Package').getTagData('Name')
+            if term.lower() == pkg_name.lower(): return (True, pkg_name)
+        return (False, term) 
 
     def search_package(self, terms, lang=None, fields=None):
         """
Index: pisi/db/packagedb.py
===================================================================
--- pisi/db/packagedb.py	(revision 31095)
+++ pisi/db/packagedb.py	(working copy)
@@ -97,6 +97,13 @@
                                             re.compile(redesc % (lang, term), re.I).search(xml), terms):
                 found.append(name)
         return found
+    
+    def search_in_package_names(self, term):
+        repos = self.pdb.item_repos()
+        for repo in repos:
+            for name, xml in self.pdb.get_items_iter(repo):
+                if name.lower() == term.lower(): return (True, name)
+        return (False, term)
 
     def search_package(self, terms, lang=None, repo=None, fields=None):
         """
Index: pisi/cli/info.py
===================================================================
--- pisi/cli/info.py	(revision 31095)
+++ pisi/cli/info.py	(working copy)
@@ -149,6 +149,8 @@
             self.print_files(files)
 
     def installdb_info(self, package):
+        check = self.installdb.search_in_package_names(package)
+        if check[0] == True: package = check[1]
         if self.installdb.has_package(package):
             metadata, files, repo = pisi.api.info_name(package, True)
 
@@ -166,6 +168,8 @@
             ctx.ui.info(_("%s package is not installed") % package)
 
     def packagedb_info(self, package):
+        check = self.packagedb.search_in_package_names(package)
+        if check[0] == True: package = check[1]
         if self.packagedb.has_package(package):
             metadata, files, repo = pisi.api.info_name(package, False)
             if self.options.short:


-- 
Oguz Yarimtepe <oguzyarimtepe at gmail.com>



Gelistirici mesaj listesiyle ilgili daha fazla bilgi