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

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

wip on packaging

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