Changeset 3656


Ignore:
Timestamp:
Feb 17, 2017, 11:51:55 AM (2 years ago)
Author:
Juanma
Message:

WIP on CLI

Location:
lliurex-store/trunk/fuentes
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • lliurex-store/trunk/fuentes/lliurex-store-cli/usr/share/lliurex-store/lliurex-store-cli.py

    r3653 r3656  
    66import lliurexstore.storeManager as storeManager
    77import time
     8from bs4 import BeautifulSoup
    89
    910class color:
     
    3031                                if status['status']==0:
    3132                                        for data in results[action]:
    32                                                 if action=='search':
    33                                                         if args.info:
    34                                                                 try:
    35                                                                         print(color.BOLD+u'Package: '+color.END + data['package'])
    36                                                                         print(u'Version: '+data['version'])
    37                                                                         print(u'Categories: '+','.join(data['categories']))
    38                                                                         print(u'Status: '+data['state'])
    39                                                                         print(u'Summary: '+data['summary'])
    40                                                                         print(u'Description: '+data['description'])
    41                                                                         pkgString=[]
    42                                                                         for dependency in data['depends']:
    43                                                                                         pkgName=dependency.split(';')[0]
    44                                                                                         pkgString.append(pkgName)
    45                                                                         print(u'Depends: '+' '+','.join(pkgString))
    46                                                                         print("")
    47                                                                 except:
    48                                                                         pass
    49                                                         else:
    50                                                                 #Only print name and summary
    51                                                                 print(color.BOLD+data['package']+color.END+": "+data['summary'])
     33                                                if action=='info':
     34                                                        try:
     35                                                                print(color.BOLD+u'Package'+': '+color.END + data['package'])
     36                                                                print(u'Version'+': '+data['version'])
     37                                                                print(u'License'+': '+data['license'])
     38                                                                print(u'Categories'+': '+','.join(data['categories']))
     39                                                                print(u'Status'+': '+data['state'])
     40                                                                print(u'Summary'+': '+data['summary'])
     41                                                                desc=(BeautifulSoup(data['description'],"lxml")).get_text()
     42#                                                               print(u'Description'+': '+data['description'])
     43                                                                print(u'Description'+': '+desc)
     44                                                                pkgString=[]
     45                                                                for dependency in data['depends']:
     46                                                                                pkgName=dependency.split(';')[0]
     47                                                                                pkgString.append(pkgName)
     48                                                                print(u'Depends: '+' '+','.join(pkgString))
     49                                                                print("")
     50                                                        except Exception as e:
     51                                                                print(e)
     52                                                                pass
     53                                                elif action=='search':
     54                                                        #Only print name and summary
     55                                                        print(color.BOLD+data['package']+color.END+": "+data['summary'])
    5256                                                elif action=='list':
    5357                                                        #Print package, summary and status
     
    6266                                                                pass
    6367                                                elif action=='install':
    64                                                         for app in data:
    65                                                                                 print(app+' '+data[app])
     68                                                                listData=data.split(';')
     69                                                                print(listData[0]+" "+ u"installed"+" "+color.BOLD+ u"succesfully"+color.END)
     70                                                elif action=='remove':
     71                                                                listData=data.split(';')
     72                                                                print(listData[0]+" "+ u"removed"+" "+color.BOLD+ u"succesfully"+color.END)
    6673                                                else:
    67                                                                 print(data)
     74                                                        print(data)
    6875                                else:
    6976                                        print (u"Error: "+str(status['status']))
     
    8390                        store.set_debug(args.debug)
    8491                        parms['debug']=args.debug'''
    85         if (args.search or args.info):
     92        if args.info:
     93                actions.append('info')
     94                parms['info']=args.info
     95        if args.search:
    8696                actions.append('search')
    87                 if args.info:
    88                                 args.search=args.info
    8997                parms['search']=args.search
    9098        if args.install:
     
    101109                parms['list_sections']=args.list_sections
    102110       
    103         actionList={'search':False,'info':False,'pkgInfo':False,'install':False,'remove':False}
     111        actionList={'search':False,'info':False,'pkgInfo':False,'install':False,'remove':False,'list':False,'list-sections':False}
    104112        start_time=time.time()
    105113        for action in actions:
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/debManager.py

    r3653 r3656  
    5555                                if action=='pkginfo':
    5656                                        self._get_App_Dependencies(appInfo,app)
    57 #                       self.progress=self.progress+(self.partialProgress/self.count)
    58                         self._debug("Final Progress: "+str(self.progress))
     57                        self.progress=self.progress+(self.partialProgress/self.count)
    5958                self.progress=100
    6059                return(self.result)
     
    6463                self.result['status']={'status':status,'msg':msg}
    6564
     65        def _fake_callback(self,status,typ,data=None):
     66                pass
     67        #def _fake_callback
     68
    6669        def _callback(self,status,typ,data=None):
    67                 print("PRO "+str(self.progress))
    68                 self.partialProgress=status.get_property('percentage')
    69                 self.partialProgress=self.partialProgress/self.count
    70                 self.progress=(self.progress+self.partialProgress)/self.count
    71                 self._debug("Partial Progress"+str(self.partialProgress))
    72                 self._debug("Total Progress"+str(self.progress))
    73                 self._debug("Total apps"+str(self.count))
     70                self.partialProgress=status.props.percentage
     71                self.progress=self.partialProgress/self.count
    7472        #def _callback
    7573
     
    8078                        self.installer.install_packages(True,[app.get_id(),],None,self._callback,None)
    8179                        self.result['data'].update({app.get_id():u'installed'})
     80                        self._set_status(0)
    8281                except Exception as e:
    8382                        self._debug("Install error: "+str(e.code))
     
    9190                        self.installer.remove_packages(True,[app.get_id(),],True,False,None,self._callback,None)
    9291                        self.result['data'].update({app.get_id():0})
     92                        self._set_status(0)
    9393                except Exception as e:
    9494                        self._debug("Remove error: " +str(e.code))
     
    104104                dependsList=[]
    105105                try:
    106                         results=pkTask.get_depends(1,[app.get_id(),],True,None,self._callback,None)
     106                        results=pkTask.get_depends(1,[app.get_id(),],True,None,self._fake_callback,None)
    107107                except:
    108108                        pass
     
    134134                self.return_msg=False
    135135                try:
    136                         result=self.installer.resolve(1,[appName,],None,self._callback, None)
     136                        result=self.installer.resolve(1,[appName,],None,self._fake_callback, None)
    137137                        applist=result.get_package_array()
    138138                        if applist:
     
    142142                        self._debug("Couldn't resolve "+appName)
    143143                        self._debug("Reason: "+str(e))
    144                 self.partialProgress=100
     144                finally:
     145                        self.partialProgress=100
    145146                return(app)
    146147        #def _resolve_App
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/infoManager.py

    r3653 r3656  
    44        def __init__(self):
    55                self.dbg=0
    6                 self.pluginInfo={'info':'*'}
     6                self.pluginInfo={'get_info':'*'}
    77                self.applistInfo=[]
    88                self.progress=0
     
    2828                self.appstream=appstream
    2929                count=len(applist)
    30                 if action=='info' and count>0:
     30                if action=='get_info' and count>0:
    3131                        inc=100.0/count
    3232                        self._get_info(applist)
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/searchManager.py

    r3653 r3656  
    99                self.dbg=0
    1010                self.store=''
    11                 self.pluginInfo={'search':'*','list':'*','list_sections':'*'}
     11                self.pluginInfo={'search':'*','list':'*','list_sections':'*','info':'*'}
    1212                self.precision=10
    1313                self.applist=[]
     
    4949                if action=='list_sections':
    5050                        self._list_sections()
    51                 if action=='search':
     51                if (action=='search' or action=='info'):
    5252                        self._search_app(tokens)
    5353                self.progress=100
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/storeManager.py

    r3653 r3656  
    2020                self.relatedActions={
    2121                                        'load':['load'],
    22                                         'search':['search','info','pkginfo'],
    23                                         'list':['list','info','pkginfo'],
     22                                        'search':['search','get_info','pkginfo'],
     23                                        'list':['list','get_info','pkginfo'],
     24                                        'info':['list','get_info','pkginfo'],
    2425                                        'list_sections':['list_sections'],
    25                                         'install':['search','info','pkginfo','install'],
    26                                         'remove':['search','info','pkginfo','remove']
     26                                        'install':['search','get_info','pkginfo','install'],
     27                                        'remove':['search','get_info','pkginfo','remove']
    2728                                        }
    2829                self.dbg=0
     
    99100        def _define_functions_for_threads(self):
    100101                self.threads['load']="threading.Thread(target=self._load_Store)"
    101                 self.threads['info']="threading.Thread(target=self._get_App_Info,args=[args])"
     102                self.threads['get_info']="threading.Thread(target=self._get_App_Info,args=[args])"
    102103                self.threads['pkginfo']="threading.Thread(target=self._get_Extended_App_Info,args=[args])"
    103104                self.threads['search']='threading.Thread(target=self._search_Store,args=[args,action])'
    104105                self.threads['list']='threading.Thread(target=self._search_Store,args=[args,action])'
     106                self.threads['info']='threading.Thread(target=self._search_Store,args=[args,action])'
    105107                self.threads['install']='threading.Thread(target=self._install_remove_App,args=[args,action])'
    106108                self.threads['remove']='threading.Thread(target=self._install_remove_App,args=[args,action])'
     
    332334        ####
    333335        def _get_App_Info(self,applist,launchedby=None):
    334                 action='info'
     336                action='get_info'
    335337                infoFunction=self._execute_class_method(action,None,launchedby)
    336338                applistInfo=infoFunction.execute_action(self.store,action,applist)
     
    392394        #  - List of dicts with all the info
    393395        ####
    394         def _search_Store(self,searchItem='',action='search',fullsearch=True,launchedby=None):
     396        def _search_Store(self,searchItem='',action='search',fullsearch=False,launchedby=None):
    395397                applist={}
    396398                aux_applist=[]
     
    400402                        except:
    401403                                searchItem=''
    402                 if action=='list_sections':
     404                elif action=='list_sections':
    403405                        searchItem=''
     406                elif action=='info':
     407                        fullsearch=True
    404408                if not launchedby:
    405409                        launchedby=action
     
    412416                if status['status']==0:
    413417                        #1.- Get appstream metadata (faster)
    414                         partialAction='info'
     418                        partialAction='get_info'
    415419                        self.result[partialAction]={}
    416420                        applist=self._get_App_Info(aux_applist,launchedby)
Note: See TracChangeset for help on using the changeset viewer.