source: lliurex-store/trunk/fuentes/lliurex-appstore.install/usr/bin/lliurex-store-cli @ 3244

Last change on this file since 3244 was 3244, checked in by Juanma, 3 years ago

wip on package

  • Property svn:executable set to *
File size: 2.8 KB
Line 
1#!/usr/bin/python3
2import sys
3import argparse
4sys.path.append('/usr/share/lliurex-store')
5#sys.path.append('/home/lliurex/lliurex-store/trunk/fuentes/lliurex-appstore.install/usr/share/lliurex-store')
6import storeManager
7import time
8
9def main():
10        def print_results(action=None):
11                printed=False
12                results=store.get_result(action)
13                print(store.get_progress())
14                for action in results:
15                        if action in actions and not actionList[action]:
16                                print("")
17                                print ("#####################")
18                                print ("RESULT FOR "+action+ " executed in " + str((time.time() - start_time)))
19                                print(store.get_progress())
20                                for result in results[action]:
21                                        print(result)
22                                        print ("---------------")
23                                printed=True
24                        if printed:
25                                print ("####################")
26                return(printed)
27
28        CURSOR_UP='\033[F'
29        ERASE_LINE='\033[K'
30        actions=[]
31        parms={}
32        store=storeManager.StoreManager()
33        args=process_Args(sys.argv)
34
35        if args.debug:
36                actions.append('debug')
37                store.set_debug(args.debug)
38                parms['debug']=args.debug
39        if args.search:
40                actions.append('search')
41                parms['search']=args.search
42        if args.install:
43                actions.append('install')
44                parms['install']=args.install
45        if args.remove:
46                actions.append('remove')
47                parms['remove']=args.remove
48        if args.list:
49                actions.append('list')
50                parms['list']=args.list
51        if args.list_sections:
52                actions.append('list_sections')
53                parms['list_sections']=args.list_sections
54       
55        actionList={'search':False,'info':False,'pkgInfo':False,'install':False,'remove':False}
56        start_time=time.time()
57        for action in actions:
58                print("Launching: "+action)
59                store.execute_action(action,parms[action])
60                actionList[action]=False
61               
62        print ("All actions launched: " +str(actions))
63        while store.is_action_running():
64                #               print("                                                                                                               ",end="\r")
65                print (CURSOR_UP + ERASE_LINE)
66                print(store.get_progress(),end="\r")
67                time.sleep(0.1)
68                for key in actionList:
69                        progressDic=store.get_progress(key)
70                        if key in progressDic:
71                                if progressDic[key]==100 and not actionList[key]:
72                                        actionList[key]=print_results(key)
73        print_results()
74
75
76def process_Args(args):
77        parser=argparse.ArgumentParser(description=(u'Lliurex Software Center'))
78        parser.add_argument('--list',metavar="Category",action='append',nargs='?',help=(u"List all packages, optionally list packages from a given category"))
79        parser.add_argument('--list-sections',action='store_true',help=(u"List all sections from the store"))
80        parser.add_argument('--search',metavar='Name',nargs='?',help=(u"Search a package"))
81        parser.add_argument('--install',metavar='Package',help=(u"Install a package"))
82        parser.add_argument('--remove',metavar='Package',help=(u"Remove a package"))
83        parser.add_argument('--debug',action='store_true',help=(u"Prints debug information"))
84
85        args=parser.parse_args()
86        return args
87
88main()
Note: See TracBrowser for help on using the repository browser.