@@ -68,7 +68,10 @@ def handle(self, *args, **options):
6868 action_method = getattr (self , "action_" + action , None )
6969 if action_method :
7070 show_help = False
71- action_method ()
71+ res = action_method ()
72+ if res not in [None , True ]:
73+ import sys
74+ sys .exit (1 )
7275
7376 if show_help :
7477 self .stdout .write (self .help )
@@ -107,25 +110,37 @@ def action_managers(self):
107110 def action_update (self ):
108111 vocs = self .app .write_vocabulary_records_from_managers ()
109112 if self .options ["verbosity" ] > 0 :
110- for voc in vocs .values ():
111- self .stdout .write (voc .__module__ )
113+ if vocs :
114+ for voc in vocs .values ():
115+ self .stdout .write (voc .__module__ )
116+ else :
117+ self .stdout .write ('Please run django migrate.' )
112118
113119 def action_refetch (self ):
114- self .action_fetch (True )
120+ return self .action_fetch (True )
115121
116122 def action_fetch (self , overwrite = False ):
123+ ret = True
124+
117125 for voc in self ._get_vocabularies ():
118126 download_method = getattr (voc , "download" , None )
119127 if download_method :
120128 if self .options ["verbosity" ] > 0 :
121129 self .stdout .write (voc .prefix )
122130 url , filepath , size , downloaded = download_method (overwrite = overwrite )
123131 if self .options ["verbosity" ] > 0 :
124- self .stdout .write (
125- "\t {}\n \t {}\n \t {:.3f}MB" .format (
126- url , filepath , size / 1024 / 1024
132+ if size > 0 :
133+ self .stdout .write (
134+ "\t {}\n \t {}\n \t {:.3f}MB" .format (
135+ url , filepath , size / 1024 / 1024
136+ )
127137 )
128- )
138+ else :
139+ self .stdout .write (f"ERROR: vocabulary download failed { url } ." )
140+ if size < 1 :
141+ ret = False
142+
143+ return ret
129144
130145 def action_init (self ):
131146 self .action_update ()
0 commit comments