7
7
"""
8
8
9
9
from urllib .error import URLError
10
+ from mcman .status_handler import StatusHandler
10
11
from mcman .backend import plugins as backend
11
12
from mcman .backend import common as utils
12
13
from mcman .frontend .common import Command
@@ -34,18 +35,6 @@ def __init__(self, args):
34
35
35
36
self .invoke_subcommand (args .subcommand , (ValueError , URLError ))
36
37
37
- def status_find_plugins (self , key , values ):
38
- """ Print status for backend.find_plugins. """
39
- self .p_sub ('Could not find {}' .format (values [0 ]))
40
-
41
- def status_dependencies (self , key , values ):
42
- """ Print status for backend.dependencies. """
43
- if key == 1 or key == 3 :
44
- self .p_sub ('Could not find `{}`' , values [0 ])
45
- return
46
- self .p_sub ('Could not find version `{}` of `{}`' .format (
47
- values [1 ], values [0 ]))
48
-
49
38
def search (self ):
50
39
""" Search for plugins. """
51
40
query = self .args .query
@@ -164,16 +153,27 @@ def download(self):
164
153
""" Download plugins. """
165
154
self .p_main ('Finding plugins on BukGet' )
166
155
156
+ status_handler = StatusHandler ()
157
+ status_handler .register_handler (1 , lambda arguments :
158
+ self .p_sub ('Could not find {}' .format (
159
+ arguments [0 ])))
167
160
to_install , versions = backend .find_plugins (self .args .server ,
168
161
self .args .plugins ,
169
- self . status_find_plugins )
162
+ status_handler . get_hook () )
170
163
171
164
self .p_main ('Resolving dependencies' )
172
165
173
- to_install = backend .dependencies (self .args .server ,
174
- to_install ,
175
- versions ,
176
- self .status_dependencies )
166
+ status_handler = StatusHandler ()
167
+ one_three = lambda arguments : \
168
+ self .p_sub ('Could not find `{}`' .format (arguments ))
169
+ two = lambda arguments : \
170
+ self .p_sub ('Could not find version `{}` of `{}`' .format (
171
+ arguments [0 ], arguments [1 ]))
172
+ status_handler .register_handler (1 , one_three )
173
+ status_handler .register_handler (2 , two )
174
+ status_handler .register_handler (3 , one_three )
175
+ to_install = backend .dependencies (self .args .server , to_install ,
176
+ versions , status_handler .get_hook ())
177
177
178
178
if len (to_install ) < 1 :
179
179
self .p_main ('Found no plugins!' )
@@ -182,32 +182,25 @@ def download(self):
182
182
self .p_main (
183
183
'Resolving versions, and checking allready installed plugins' )
184
184
185
- installed = backend .list_plugins ()
186
- plugins = list ()
187
- for slug in to_install :
188
- plugin = backend .download_details (self .server , slug ,
189
- versions [slug ]
190
- if slug in versions
191
- else self .args .version )
192
-
193
- if plugin is None :
194
- self .p_sub ('Could not find plugin `{}` again' .format (slug ))
195
- continue
196
- elif len (plugin ['versions' ]) < 1 :
197
- self .p_sub ('Could not find version of `{}` again' .format (slug ))
198
- continue
199
-
200
- for i in installed :
201
- if i [0 ] == slug and i [1 ] >= plugin ['versions' ][0 ]['version' ]:
202
- self .p_sub ('{} was allready installed.' .format (
203
- plugin ['plugin_name' ]))
204
- break
205
- elif i [0 ] == slug :
206
- self .p_sub (
207
- '{} is allready installed, but out of date' .format (
208
- plugin ['plugin_name' ]))
209
- else :
210
- plugins .append (plugin )
185
+ status_handler = StatusHandler ()
186
+ one = lambda argument : \
187
+ self .p_sub ('Could not find plugin `{}` again' .format (argument ))
188
+ two = lambda argument : \
189
+ self .p_sub ('Could not find version of `{}` again' .format (
190
+ argument ))
191
+ three = lambda argument : \
192
+ self .p_sub ('{} was allready installed.' .format (
193
+ argument ))
194
+ four = lambda argument : \
195
+ self .p_sub ('{} is allready installed, but out of date' .format (
196
+ argument ))
197
+ status_handler .register_handler (1 , one )
198
+ status_handler .register_handler (2 , two )
199
+ status_handler .register_handler (3 , three )
200
+ status_handler .register_handler (4 , four )
201
+
202
+ plugins = backend .find_updates (self .server , to_install , versions ,
203
+ status_handler .get_hook ())
211
204
212
205
if len (plugins ) < 1 :
213
206
self .p_main ('No plugins left to install' )
0 commit comments