예제 #1
0
 def search(self, query):
     if query.strip() == "":
         return []
     try:
         out_s = subprocess.check_output([
             'urpmq', "-Y",
             "--summary", query
         ])
     except subprocess.CalledProcessError as e:
         return []
     
     r = []
     for l in out_s.split('\n'):
         s = l.strip().split(":", 1)
         if len(s) != 2:
             continue
         summary_list = s[1].rsplit("(",1)
         if len(summary_list) != 2:
             continue
         p = PackageInfo()
         p.name = s[0].strip()
         p.summary = summary_list[0].strip()
         p.version = summary_list[1].rsplit(")",1)[0].strip()
         p.state = 'r'
         if p.name in self.all_dict and self.all_dict[p.name].state == 'i':
             p.state = 'i'
         r.append(p)
     return r
예제 #2
0
    def search(self, query):
        if query.strip() == "":
            return []
        try:
            out_s = subprocess.check_output(
                ['urpmq', "-Y", "--summary", query])
        except subprocess.CalledProcessError as e:
            return []

        r = []
        for l in out_s.split('\n'):
            s = l.strip().split(":", 1)
            if len(s) != 2:
                continue
            summary_list = s[1].rsplit("(", 1)
            if len(summary_list) != 2:
                continue
            p = PackageInfo()
            p.name = s[0].strip()
            p.summary = summary_list[0].strip()
            p.version = summary_list[1].rsplit(")", 1)[0].strip()
            p.state = 'r'
            if p.name in self.all_dict and self.all_dict[p.name].state == 'i':
                p.state = 'i'
            r.append(p)
        return r
예제 #3
0
    def search(self, query):
        try:
            out_s = subprocess.check_output(['pacman', '-Ss', query])
        except subprocess.CalledProcessError as cpe:
            self.context.notify('info', _('No search results found'))
            logging.info('No search results found')
            out_s = ''

        r = []
        for l in out_s.split('\n'):
            s = l.split('/')
            if len(s) == 2 and not(s[0].startswith('  ')):
                sn = s[1].split(' ')
                pkg = sn[0]

                p = PackageInfo()
                p.name = sn[0]

                pkg_installed = True
                try:
                    out_i = subprocess.check_output(['pacman', '-Q', p.name])
                except subprocess.CalledProcessError as cpe:
                    p.state = 'r'
                    pkg_installed = False

                if pkg_installed:
                    p.state = 'i'

                p.version = sn[1]
                r.append(p)

        return r
예제 #4
0
파일: pm_apt.py 프로젝트: balchjd/ajenti
    def _parse_asv(self, d):
        r = []
        for l in d.split('\n'):
            s = l.split('/')
            if len(s) == 0 or not s[0]:
                continue

            p = PackageInfo()
            p.name = s[0]
            r.append(p)
        return r
예제 #5
0
    def _parse_asv(self, d):
        r = []
        for l in d.split('\n'):
            s = l.split('/')
            if len(s) == 0 or not s[0]:
                continue

            p = PackageInfo()
            p.name = s[0]
            r.append(p)
        return r
예제 #6
0
    def search(self, query):
        out_s = subprocess.check_output(['apt-cache', 'search', query])
        r = []
        for l in out_s.split('\n'):
            s = filter(None, l.split(' '))
            if len(s) == 0:
                continue

            p = PackageInfo()
            p.name = s[0]
            p.state = 'i' if p.name in self.all_dict else 'r'
            p.description = ' '.join(s[2:])
            r.append(p)
        return r
예제 #7
0
    def _parse_upgradeable(self, d):
        r = []
        for l in d.split('\n'):
            s = l.split(' ')
            if len(s) == 1:
                continue

            p = PackageInfo()
            p.action = 'i'

            p.name = s[0]
            p.version = s[1]
            r.append(p)
        return r
예제 #8
0
    def _parse_upgradeable(self, d):
        r = []
        for l in d.split('\n'):
            s = l.split(' ')
            if len(s) == 1:
                continue

            p = PackageInfo()
            p.action = 'i'

            p.name = s[0]
            p.version = s[1]
            r.append(p)
        return r
예제 #9
0
파일: pm_apt.py 프로젝트: balchjd/ajenti
    def search(self, query):
        out_s = subprocess.check_output(['apt-cache', 'search', query])
        r = []
        for l in out_s.split('\n'):
            s = filter(None, l.split(' '))
            if len(s) == 0:
                continue

            p = PackageInfo()
            p.name = s[0]
            p.state = 'i' if p.name in self.all_dict else 'r'
            p.description = ' '.join(s[2:])
            r.append(p)
        return r
예제 #10
0
 def _parse_yum(self, ss):
     r = []
     for s in ss.splitlines():
         s = s.split()
         try:
             if s[0] == '':
                 continue
             else:
                 p = PackageInfo()
                 p.name = s[0]
                 p.state = 'i'
                 r.append(p)
             if len(r.keys()) > 250:
                 break
         except:
             pass
     return r
예제 #11
0
파일: pm_yum.py 프로젝트: AlexSnet/ajenti
 def search(self, query):
     out_s = subprocess.check_output(['yum', '-C', '-q', '-d0', '-e0', 'search', query])
     r = []
     for l in out_s.split('\n'):
         s = l.split()
         if len(s) < 2:
             continue
         if s[0].startswith('====') or s[0] == ':':
             continue
         else:
             p = PackageInfo()
             p.name = s[0]
             p.state = 'r'
             if p.name in self.all_dict and self.all_dict[p.name].state == 'i':
                 p.state = 'i'
             r.append(p)
     return r
예제 #12
0
 def _parse_urpmi(self, ss):
     r = []
     for s in ss.splitlines():
         s = s.strip().rsplit("-", 2)
         if len(s) != 3:
             continue
         try:
             p = PackageInfo()
             p.name = s[0]
             p.version = "-".join(s[1:])
             p.state = 'i'
             r.append(p)
             if len(r.keys()) > 2500:
                 break
         except:
             pass
     return r
예제 #13
0
파일: pm_yum.py 프로젝트: AlexSnet/ajenti
 def _parse_yum(self, ss):
     r = []
     for s in ss.splitlines():
         s = s.split()
         try:
             if s[0] == '':
                 continue
             else:
                 p = PackageInfo()
                 p.name = s[0]
                 p.state = 'i'
                 r.append(p)
             if len(r.keys()) > 250:
                 break
         except:
             pass
     return r
예제 #14
0
 def _parse_urpmi(self, ss):
     r = []
     for s in ss.splitlines():
         s = s.strip().rsplit("-", 2)
         if len(s) != 3:
             continue
         try:
             p = PackageInfo()
             p.name = s[0]
             p.version = "-".join(s[1:])
             p.state = 'i'
             r.append(p)
             if len(r.keys()) > 2500:
                 break
         except:
             pass
     return r
예제 #15
0
파일: pm_apt.py 프로젝트: AlexSnet/ajenti
    def search(self, query):
        out_s = subprocess.check_output(['apt-show-versions', '-a', '-R', query])
        r = []
        found = {}
        for l in out_s.split('\n'):
            s = l.split()
            if len(s) < 4:
                continue

            p = PackageInfo()
            p.name = s[0]
            p.state = 'i' if p.name in self.all_dict else 'r'
            p.version = s[1]

            if not p.name in found or found[p.name] < p.version:
                r.append(p)
                found[p.name] = p.version
        return r
예제 #16
0
파일: pm_apt.py 프로젝트: paimpozhil/ajenti
    def _parse_dpkg(self, d):
        r = []
        for l in d.split('\n'):
            s = filter(None, l.split(' '))
            if len(s) == 0:
                continue

            p = PackageInfo()
            if s[0][0] == 'i':
                p.state = 'i'
            else:
                continue

            p.name = s[1]
            p.version = s[2]
            p.description = ' '.join(s[3:])
            r.append(p)
        return r
예제 #17
0
파일: pm_apt.py 프로젝트: paimpozhil/ajenti
    def _parse_apt(self, d):
        r = []
        for l in d.split('\n'):
            s = filter(None, l.split(' '))
            if len(s) == 0:
                continue

            p = PackageInfo()
            if s[0] == 'Inst':
                p.action = 'i'
            elif s[0] in ['Remv', 'Purg']:
                p.action = 'r'
            else:
                continue
            p.name = s[1]
            p.version = s[2].strip('[]')
            r.append(p)
        return r
예제 #18
0
파일: pm_apt.py 프로젝트: balchjd/ajenti
    def _parse_dpkg(self, d):
        r = []
        for l in d.split('\n'):
            s = filter(None, l.split(' '))
            if len(s) == 0:
                continue

            p = PackageInfo()
            if s[0][0] == 'i':
                p.state = 'i'
            else:
                continue

            p.name = s[1]
            p.version = s[2]
            p.description = ' '.join(s[3:])
            r.append(p)
        return r
예제 #19
0
파일: pm_apt.py 프로젝트: balchjd/ajenti
    def _parse_apt(self, d):
        r = []
        for l in d.split('\n'):
            s = filter(None, l.split(' '))
            if len(s) == 0:
                continue

            p = PackageInfo()
            if s[0] == 'Inst':
                p.action = 'i'
            elif s[0] in ['Remv', 'Purg']:
                p.action = 'r'
            else:
                continue
            p.name = s[1]
            p.version = s[2].strip('[]')
            r.append(p)
        return r
예제 #20
0
파일: pm_apt.py 프로젝트: paimpozhil/ajenti
    def search(self, query):
        out_s = subprocess.check_output(
            ['apt-show-versions', '-a', '-R', query])
        r = []
        found = {}
        for l in out_s.split('\n'):
            s = l.split()
            if len(s) < 4:
                continue

            p = PackageInfo()
            p.name = s[0]
            p.state = 'i' if p.name in self.all_dict else 'r'
            p.version = s[1]

            if not p.name in found or found[p.name] < p.version:
                r.append(p)
                found[p.name] = p.version
        return r
예제 #21
0
 def search(self, query):
     out_s = subprocess.check_output(
         ['yum', '-C', '-q', '-d0', '-e0', 'search', query])
     r = []
     for l in out_s.split('\n'):
         s = l.split()
         if len(s) < 2:
             continue
         if s[0].startswith('====') or s[0] == ':':
             continue
         else:
             p = PackageInfo()
             p.name = s[0]
             p.state = 'r'
             if p.name in self.all_dict and self.all_dict[
                     p.name].state == 'i':
                 p.state = 'i'
             r.append(p)
     return r
예제 #22
0
    def search(self, query):
        try:
            out_s = subprocess.check_output(['pacman', '-Ss', query])
        except subprocess.CalledProcessError as cpe:
            self.context.notify('info', _('No search results found'))
            logging.info('No search results found')
            out_s = ''

        r = []
        for l in out_s.split('\n'):
            s = l.split('/')
            if len(s) == 2 and not(s[0].startswith('  ')):
                sn = s[1].split(' ')

                p = PackageInfo()
                p.name = sn[0]
                p.state = 'i' if subprocess.call(['pacman', '-Q', p.name]) == 0 else 'r'
                p.version = sn[1]

                r.append(p)

        return r
예제 #23
0
    def _parse_all_installed(self, d):
        r = []

        lines = d.splitlines()
        infos = ['\n'.join(lines[i:i+2]) for i in range(0, len(lines), 2)]

        for info in infos:
            s = info.split('\n')
            if len(s) == 0:
                continue

            package = s[0].split(' ')

            p = PackageInfo()
            p.state = 'i'

            p.name = package[0]
            p.version = package[1]

            s[1].lstrip().rstrip()
            p.description = ' '.join(s[1])

            r.append(p)
        return r
예제 #24
0
    def _parse_all_installed(self, d):
        r = []

        lines = d.splitlines()
        infos = ['\n'.join(lines[i:i+2]) for i in range(0, len(lines), 2)]

        for info in infos:
            s = info.split('\n')
            if len(s) == 0:
                continue

            package = s[0].split(' ')

            p = PackageInfo()
            p.state = 'i'

            p.name = package[0]
            p.version = package[1]

            s[1].lstrip().rstrip()
            p.description = ' '.join(s[1])

            r.append(p)
        return r
예제 #25
0
파일: main.py 프로젝트: dchusovitin/ajenti
 def intent_install(self, package):
     # self.activate()
     p = PackageInfo()
     p.name, p.action = package, "i"
     self.run([p])
예제 #26
0
파일: main.py 프로젝트: surjit/ajenti_cp
 def intent_install(self, package):
     p = PackageInfo()
     p.name, p.action = package, 'i'
     self.run([p])
예제 #27
0
파일: main.py 프로젝트: rockworldmi/ajenti
 def intent_install(self, package):
     self.activate()
     p = PackageInfo()
     p.name, p.action = package, 'i'
     self.mgr.do([p])
예제 #28
0
파일: main.py 프로젝트: CodeOneTwo/ajenti
 def intent_install(self, package):
     p = PackageInfo()
     p.name, p.action = package, 'i'
     self.run([p])
예제 #29
0
 def intent_install(self, package):
     self.activate()
     p = PackageInfo()
     p.name, p.action = package, 'i'
     self.mgr.do([p])