Total Complexity | 56 |
Total Lines | 637 |
Duplicated Lines | 0 % |
Changes | 0 |
Complex classes like bbarchivist.scripts.archivist often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
1 | #!/usr/bin/env python3 |
||
2 | """Download bar files, create autoloaders.""" |
||
3 | |||
4 | import os # filesystem read |
||
5 | import sys # load arguments |
||
6 | |||
7 | import requests # session |
||
8 | from bbarchivist import archiveutils # archive work |
||
9 | from bbarchivist import barutils # file/folder work |
||
10 | from bbarchivist import decorators # timer |
||
11 | from bbarchivist import hashutils # hashes, GPG |
||
12 | from bbarchivist import loadergen # cap, in Python |
||
13 | from bbarchivist import networkutils # download/lookup |
||
14 | from bbarchivist import scriptutils # script stuff |
||
15 | from bbarchivist import utilities # input validation |
||
16 | |||
17 | __author__ = "Thurask" |
||
18 | __license__ = "WTFPL v2" |
||
19 | __copyright__ = "2015-2018 Thurask" |
||
20 | |||
21 | |||
22 | @decorators.timer |
||
23 | def grab_args(): |
||
24 | """ |
||
25 | Parse arguments from argparse/questionnaire. |
||
26 | |||
27 | Invoke :func:`archivist.archivist_main` with those arguments. |
||
28 | """ |
||
29 | if len(sys.argv) > 1: |
||
30 | parser = scriptutils.default_parser("bb-archivist", "Create many autoloaders", |
||
31 | ("folder", "osr")) |
||
32 | negategroup = parser.add_argument_group( |
||
33 | "negators", |
||
34 | "Disable program functionality") |
||
35 | negategroup.add_argument( |
||
36 | "-no", |
||
37 | "--no-download", |
||
38 | dest="download", |
||
39 | help="Don't download files", |
||
40 | action="store_false", |
||
41 | default=True) |
||
42 | negategroup.add_argument( |
||
43 | "-ni", |
||
44 | "--no-integrity", |
||
45 | dest="integrity", |
||
46 | help="Don't test bar files after download", |
||
47 | action="store_false", |
||
48 | default=True) |
||
49 | negategroup.add_argument( |
||
50 | "-nx", |
||
51 | "--no-extract", |
||
52 | dest="extract", |
||
53 | help="Don't extract bar files", |
||
54 | action="store_false", |
||
55 | default=True) |
||
56 | negategroup.add_argument( |
||
57 | "-nr", |
||
58 | "--no-radios", |
||
59 | dest="radloaders", |
||
60 | help="Don't make radio autoloaders", |
||
61 | action="store_false", |
||
62 | default=True) |
||
63 | negategroup.add_argument( |
||
64 | "-ns", |
||
65 | "--no-rmsigned", |
||
66 | dest="signed", |
||
67 | help="Don't remove signed files", |
||
68 | action="store_false", |
||
69 | default=True) |
||
70 | negategroup.add_argument( |
||
71 | "-nc", |
||
72 | "--no-compress", |
||
73 | dest="compress", |
||
74 | help="Don't compress loaders", |
||
75 | action="store_false", |
||
76 | default=True) |
||
77 | negategroup.add_argument( |
||
78 | "-nd", |
||
79 | "--no-delete", |
||
80 | dest="delete", |
||
81 | help="Don't delete uncompressed loaders", |
||
82 | action="store_false", |
||
83 | default=True) |
||
84 | negategroup.add_argument( |
||
85 | "-nv", |
||
86 | "--no-verify", |
||
87 | dest="verify", |
||
88 | help="Don't verify created loaders", |
||
89 | action="store_false", |
||
90 | default=True) |
||
91 | if not getattr(sys, 'frozen', False): |
||
92 | parser.add_argument( |
||
93 | "-g", |
||
94 | "--gpg", |
||
95 | dest="gpg", |
||
96 | help="Enable GPG signing. Set up GnuPG.", |
||
97 | action="store_true", |
||
98 | default=False) |
||
99 | parser.add_argument( |
||
100 | "-r", |
||
101 | "--radiosw", |
||
102 | dest="altsw", |
||
103 | metavar="SW", |
||
104 | help="Radio software version; use without software to guess", |
||
105 | nargs="?", |
||
106 | const="checkme", |
||
107 | default=None) |
||
108 | if not getattr(sys, 'frozen', False): |
||
109 | parser.add_argument( |
||
110 | "-m", |
||
111 | "--method", |
||
112 | dest="method", |
||
113 | metavar="METHOD", |
||
114 | help="Compression method", |
||
115 | nargs="?", |
||
116 | type=utilities.valid_method, |
||
117 | default=None) |
||
118 | parser.add_argument( |
||
119 | "-c", |
||
120 | "--core", |
||
121 | dest="core", |
||
122 | help="Make core/radio loaders", |
||
123 | default=False, |
||
124 | action="store_true") |
||
125 | parser.add_argument( |
||
126 | "-o", |
||
127 | "--old-style", |
||
128 | dest="oldstyle", |
||
129 | help="Make old-style checksum files", |
||
130 | default=False, |
||
131 | action="store_true") |
||
132 | parser.set_defaults(compmethod="7z") |
||
133 | args = parser.parse_args(sys.argv[1:]) |
||
134 | args.folder = scriptutils.generate_workfolder(args.folder) |
||
135 | if getattr(sys, 'frozen', False): |
||
136 | args.gpg = False |
||
137 | hashdict = hashutils.verifier_config_loader(os.getcwd()) |
||
138 | args.method = "7z" |
||
139 | else: |
||
140 | hashdict = hashutils.verifier_config_loader() |
||
141 | hashutils.verifier_config_writer(hashdict) |
||
142 | if args.method is None: |
||
143 | compmethod = archiveutils.compress_config_loader() |
||
144 | archiveutils.compress_config_writer(compmethod) |
||
145 | else: |
||
146 | compmethod = args.method |
||
147 | archivist_main(args.os, args.radio, args.swrelease, |
||
148 | os.path.abspath(args.folder), args.radloaders, |
||
149 | args.compress, args.delete, args.verify, |
||
150 | hashdict, args.download, |
||
151 | args.extract, args.signed, compmethod, args.gpg, |
||
152 | args.integrity, args.altsw, args.core, args.oldstyle) |
||
153 | else: |
||
154 | questionnaire() |
||
155 | |||
156 | |||
157 | def questionnaire(): |
||
158 | """ |
||
159 | Questions to ask if no arguments given. |
||
160 | """ |
||
161 | localdir = os.getcwd() |
||
162 | osversion = input("OS VERSION (REQUIRED): ") |
||
163 | radioversion = input("RADIO VERSION (PRESS ENTER TO GUESS): ") |
||
164 | radioversion = None if not radioversion else radioversion |
||
165 | softwareversion = input("OS SOFTWARE RELEASE (PRESS ENTER TO GUESS): ") |
||
166 | softwareversion = None if not softwareversion else softwareversion |
||
167 | altcheck = utilities.i2b("USING ALTERNATE RADIO (Y/N)?: ") |
||
168 | altsw = scriptutils.check_altsw(altcheck) |
||
169 | radios = utilities.i2b("CREATE RADIO LOADERS (Y/N)?: ") |
||
170 | compressed = utilities.i2b("COMPRESS LOADERS (Y/N)?: ") |
||
171 | deleted = utilities.i2b("DELETE UNCOMPRESSED LOADERS (Y/N)?: ") if compressed else False |
||
172 | hashed = utilities.i2b("GENERATE HASHES (Y/N)?: ") |
||
173 | if getattr(sys, 'frozen', False): |
||
174 | hashdict = hashutils.verifier_config_loader(os.getcwd()) |
||
175 | compmethod = "7z" |
||
176 | else: |
||
177 | hashdict = hashutils.verifier_config_loader() |
||
178 | hashutils.verifier_config_writer(hashdict) |
||
179 | compmethod = archiveutils.compress_config_loader() |
||
180 | print(" ") |
||
181 | archivist_main(osversion, radioversion, softwareversion, |
||
182 | localdir, radios, compressed, deleted, hashed, |
||
183 | hashdict, download=True, extract=True, signed=True, |
||
184 | compmethod=compmethod, gpg=False, integrity=True, |
||
185 | altsw=altsw, core=False, oldstyle=False) |
||
186 | |||
187 | |||
188 | def archivist_checksw(baseurl, softwareversion, swchecked): |
||
189 | """ |
||
190 | Check availability of software releases. |
||
191 | |||
192 | :param baseurl: Base URL for download links. |
||
193 | :type baseurl: str |
||
194 | |||
195 | :param softwareversion: Software release, 10.x.y.zzzz. Can be guessed. |
||
196 | :type softwareversion: str |
||
197 | |||
198 | :param swchecked: If we checked the sw release already. |
||
199 | :type swchecked: bool |
||
200 | """ |
||
201 | scriptutils.check_sw(baseurl, softwareversion, swchecked) |
||
202 | |||
203 | |||
204 | def archivist_download(download, osurls, radiourls, localdir, session, dirs): |
||
1 ignored issue
–
show
|
|||
205 | """ |
||
206 | Download function. |
||
207 | |||
208 | :param download: Whether to download bar files. True by default. |
||
209 | :type download: bool |
||
210 | |||
211 | :param osurls: OS file list. |
||
212 | :type osurls: list(str) |
||
213 | |||
214 | :param radiourls: Radio file list. |
||
215 | :type radiourls: list(str) |
||
216 | |||
217 | :param localdir: Working directory. Local by default. |
||
218 | :type localdir: str |
||
219 | |||
220 | :param session: Requests session object, default is created on the fly. |
||
221 | :type session: requests.Session() |
||
222 | |||
223 | :param dirs: List of generated bar/loader/zip directories. |
||
224 | :type dirs: list(str) |
||
225 | """ |
||
226 | osfiles = scriptutils.comp_joiner(localdir, dirs[0], osurls) |
||
227 | radiofiles = scriptutils.comp_joiner(localdir, dirs[1], radiourls) |
||
228 | if download: |
||
229 | print("BEGIN DOWNLOADING...") |
||
230 | networkutils.download_bootstrap(radiourls + osurls, localdir, 3, session) |
||
231 | print("ALL FILES DOWNLOADED") |
||
232 | elif all(os.path.exists(x) for x in osfiles+radiofiles): |
||
233 | print("USING CACHED OS/RADIO FILES...") |
||
234 | barutils.replace_bars_bulk(os.path.abspath(localdir), osfiles+radiofiles) |
||
235 | |||
236 | |||
237 | def archivist_integritybars(integrity, osurls, radiourls, localdir): |
||
238 | """ |
||
239 | Check integrity of bar files, redownload if necessary. |
||
240 | |||
241 | :param integrity: Whether to test downloaded files. True by default. |
||
242 | :type integrity: bool |
||
243 | |||
244 | :param osurls: OS file list. |
||
245 | :type osurls: list(str) |
||
246 | |||
247 | :param radiourls: Radio file list. |
||
248 | :type radiourls: list(str) |
||
249 | """ |
||
250 | if integrity: |
||
251 | urllist = osurls + radiourls |
||
252 | scriptutils.test_bar_files(localdir, urllist) |
||
253 | |||
254 | |||
255 | def archivist_extractbars(extract, localdir): |
||
256 | """ |
||
257 | Extract signed files from bar files. |
||
258 | |||
259 | :param extract: Whether to extract bar files. True by default. |
||
260 | :type extract: bool |
||
261 | |||
262 | :param localdir: Working directory. Local by default. |
||
263 | :type localdir: str |
||
264 | """ |
||
265 | if extract: |
||
266 | print("EXTRACTING...") |
||
267 | barutils.extract_bars(localdir) |
||
268 | |||
269 | |||
270 | def archivist_integritysigned(integrity, localdir): |
||
271 | """ |
||
272 | Check integrity of signed files. |
||
273 | |||
274 | :param integrity: Whether to test downloaded files. True by default. |
||
275 | :type integrity: bool |
||
276 | |||
277 | :param localdir: Working directory. Local by default. |
||
278 | :type localdir: str |
||
279 | """ |
||
280 | if integrity: |
||
281 | scriptutils.test_signed_files(localdir) |
||
282 | |||
283 | |||
284 | def archivist_movebars(dirs, localdir): |
||
285 | """ |
||
286 | Move bar files. |
||
287 | |||
288 | :param dirs: List of OS/radio bar/loader/zipped folders. |
||
289 | :type dirs: list(str) |
||
290 | |||
291 | :param localdir: Working directory. Local by default. |
||
292 | :type localdir: str |
||
293 | """ |
||
294 | print("MOVING BAR FILES...") |
||
295 | barutils.move_bars(localdir, dirs[0], dirs[1]) |
||
296 | |||
297 | |||
298 | def archivist_generateloaders(osversion, radioversion, radios, localdir, altsw, core): |
||
1 ignored issue
–
show
|
|||
299 | """ |
||
300 | Generate loaders. |
||
301 | |||
302 | :param osversion: OS version, 10.x.y.zzzz. Required. |
||
303 | :type osversion: str |
||
304 | |||
305 | :param radioversion: Radio version, 10.x.y.zzzz. Can be guessed. |
||
306 | :type radioversion: str |
||
307 | |||
308 | :param radios: Whether to create radio autoloaders. True by default. |
||
309 | :type radios: bool |
||
310 | |||
311 | :param localdir: Working directory. Local by default. |
||
312 | :type localdir: str |
||
313 | |||
314 | :param altsw: Radio software release, if not the same as OS. |
||
315 | :type altsw: str |
||
316 | |||
317 | :param core: Whether to create a core/radio loader. Default is false. |
||
318 | :type core: bool |
||
319 | """ |
||
320 | print("GENERATING LOADERS...") |
||
321 | altradio = altsw is not None |
||
322 | loadergen.generate_loaders(osversion, radioversion, radios, localdir, altradio, core) |
||
323 | |||
324 | |||
325 | def archivist_integrityloaders(integrity, localdir): |
||
326 | """ |
||
327 | Check integrity of build loaders. |
||
328 | |||
329 | :param integrity: Whether to test downloaded files. True by default. |
||
330 | :type integrity: bool |
||
331 | |||
332 | :param localdir: Working directory. Local by default. |
||
333 | :type localdir: str |
||
334 | """ |
||
335 | if integrity: |
||
336 | scriptutils.test_loader_files(localdir) |
||
337 | |||
338 | |||
339 | def archivist_removesigned(signed, localdir): |
||
340 | """ |
||
341 | Remove signed files. |
||
342 | |||
343 | :param signed: Whether to delete signed files. True by default. |
||
344 | :type signed: bool |
||
345 | |||
346 | :param localdir: Working directory. Local by default. |
||
347 | :type localdir: str |
||
348 | """ |
||
349 | if signed: |
||
350 | print("REMOVING SIGNED FILES...") |
||
351 | barutils.remove_signed_files(localdir) |
||
352 | |||
353 | |||
354 | def archivist_compressor(compressed, integrity, localdir, compmethod, szexe): |
||
355 | """ |
||
356 | Compress and optionally verify loaders. |
||
357 | |||
358 | :param compressed: Whether to compress files. True by default. |
||
359 | :type compressed: bool |
||
360 | |||
361 | :param integrity: Whether to test downloaded files. True by default. |
||
362 | :type integrity: bool |
||
363 | |||
364 | :param localdir: Working directory. Local by default. |
||
365 | :type localdir: str |
||
366 | |||
367 | :param compmethod: Compression method. Default is "7z", fallback "zip". |
||
368 | :type compmethod: str |
||
369 | |||
370 | :param szexe: Path to 7z executable. |
||
371 | :type szexe: str |
||
372 | """ |
||
373 | if compressed: |
||
374 | print("COMPRESSING...") |
||
375 | archiveutils.compress(localdir, compmethod, szexe, True) |
||
376 | if integrity: |
||
377 | print("TESTING ARCHIVES...") |
||
378 | archiveutils.verify(localdir, compmethod, szexe, True) |
||
379 | |||
380 | |||
381 | def archivist_moveloaders(dirs, localdir): |
||
382 | """ |
||
383 | Move loaders. |
||
384 | |||
385 | :param dirs: List of OS/radio bar/loader/zipped folders. |
||
386 | :type dirs: list(str) |
||
387 | |||
388 | :param localdir: Working directory. Local by default. |
||
389 | :type localdir: str |
||
390 | """ |
||
391 | print("MOVING LOADERS...") |
||
392 | barutils.move_loaders(localdir, dirs[2], dirs[3], dirs[4], dirs[5]) |
||
393 | |||
394 | |||
395 | def archivist_gethashes(dirs, hashed, compressed, deleted, radios, osversion, radioversion, softwareversion, oldstyle): |
||
1 ignored issue
–
show
|
|||
396 | """ |
||
397 | Make new-style info files. |
||
398 | |||
399 | :param dirs: List of OS/radio bar/loader/zipped folders. |
||
400 | :type dirs: list(str) |
||
401 | |||
402 | :param hashed: Whether to hash files. True by default. |
||
403 | :type hashed: bool |
||
404 | |||
405 | :param compressed: Whether to compress files. True by default. |
||
406 | :type compressed: bool |
||
407 | |||
408 | :param deleted: Whether to delete uncompressed files. True by default. |
||
409 | :type deleted: bool |
||
410 | |||
411 | :param radios: Whether to create radio autoloaders. True by default. |
||
412 | :type radios: bool |
||
413 | |||
414 | :param osversion: OS version, 10.x.y.zzzz. Required. |
||
415 | :type osversion: str |
||
416 | |||
417 | :param radioversion: Radio version, 10.x.y.zzzz. Can be guessed. |
||
418 | :type radioversion: str |
||
419 | |||
420 | :param softwareversion: Software release, 10.x.y.zzzz. Can be guessed. |
||
421 | :type softwareversion: str |
||
422 | |||
423 | :param oldstyle: Whether to make old-style checksum files. Default is false. |
||
424 | :type oldstyle: bool |
||
425 | """ |
||
426 | if hashed and not oldstyle: |
||
427 | scriptutils.bulk_info(dirs, osversion, compressed, deleted, radios, radioversion, softwareversion) |
||
428 | |||
429 | def archivist_getoldhashes(dirs, hashed, compressed, deleted, radios, hashdict, oldstyle): |
||
1 ignored issue
–
show
|
|||
430 | """ |
||
431 | Make old-style checksum files. |
||
432 | |||
433 | :param dirs: List of OS/radio bar/loader/zipped folders. |
||
434 | :type dirs: list(str) |
||
435 | |||
436 | :param hashed: Whether to hash files. True by default. |
||
437 | :type hashed: bool |
||
438 | |||
439 | :param compressed: Whether to compress files. True by default. |
||
440 | :type compressed: bool |
||
441 | |||
442 | :param deleted: Whether to delete uncompressed files. True by default. |
||
443 | :type deleted: bool |
||
444 | |||
445 | :param radios: Whether to create radio autoloaders. True by default. |
||
446 | :type radios: bool |
||
447 | |||
448 | :param hashdict: Dictionary of hash rules, in ~\bbarchivist.ini. |
||
449 | :type hashdict: dict({str: bool}) |
||
450 | |||
451 | :param oldstyle: Whether to make old-style checksum files. Default is false. |
||
452 | :type oldstyle: bool |
||
453 | """ |
||
454 | if hashed and oldstyle: |
||
455 | scriptutils.bulk_hash(dirs, compressed, deleted, radios, hashdict) |
||
456 | |||
457 | |||
458 | def archivist_gpg(gpg, dirs, compressed, deleted, radios): |
||
459 | """ |
||
460 | GPG-sign everything. |
||
461 | |||
462 | :param gpg: Whether to use GnuPG verification. False by default. |
||
463 | :type gpg: bool |
||
464 | |||
465 | :param dirs: List of OS/radio bar/loader/zipped folders. |
||
466 | :type dirs: list(str) |
||
467 | |||
468 | :param compressed: Whether to compress files. True by default. |
||
469 | :type compressed: bool |
||
470 | |||
471 | :param deleted: Whether to delete uncompressed files. True by default. |
||
472 | :type deleted: bool |
||
473 | |||
474 | :param radios: Whether to create radio autoloaders. True by default. |
||
475 | :type radios: bool |
||
476 | """ |
||
477 | if gpg: |
||
478 | scriptutils.bulk_verify(dirs, compressed, deleted, radios) |
||
479 | |||
480 | |||
481 | def archivist_deleteuncompressed(dirs, deleted, radios): |
||
482 | """ |
||
483 | Delete uncompressed loaders. |
||
484 | |||
485 | :param dirs: List of OS/radio bar/loader/zipped folders. |
||
486 | :type dirs: list(str) |
||
487 | |||
488 | :param deleted: Whether to delete uncompressed files. True by default. |
||
489 | :type deleted: bool |
||
490 | |||
491 | :param radios: Whether to create radio autoloaders. True by default. |
||
492 | :type radios: bool |
||
493 | """ |
||
494 | if deleted: |
||
495 | print("DELETING UNCOMPRESSED LOADERS...") |
||
496 | barutils.remove_unpacked_loaders(dirs[2], dirs[3], radios) |
||
497 | |||
498 | |||
499 | def archivist_removeemptyfolders(localdir): |
||
500 | """ |
||
501 | Delete empty folders. |
||
502 | |||
503 | :param localdir: Working directory. Local by default. |
||
504 | :type localdir: str |
||
505 | """ |
||
506 | print("REMOVING EMPTY FOLDERS...") |
||
507 | barutils.remove_empty_folders(localdir) |
||
508 | |||
509 | |||
510 | def archivist_main(osversion, radioversion=None, softwareversion=None, |
||
2 ignored issues
–
show
|
|||
511 | localdir=None, radios=True, compressed=True, deleted=True, |
||
512 | hashed=True, hashdict=None, download=True, |
||
513 | extract=True, signed=True, compmethod="7z", |
||
514 | gpg=False, integrity=True, altsw=None, |
||
515 | core=False, oldstyle=False): |
||
516 | """ |
||
517 | Wrap around multi-autoloader creation code. |
||
518 | Some combination of creating, downloading, hashing, |
||
519 | compressing and moving autoloaders. |
||
520 | |||
521 | :param osversion: OS version, 10.x.y.zzzz. Required. |
||
522 | :type osversion: str |
||
523 | |||
524 | :param radioversion: Radio version, 10.x.y.zzzz. Can be guessed. |
||
525 | :type radioversion: str |
||
526 | |||
527 | :param softwareversion: Software release, 10.x.y.zzzz. Can be guessed. |
||
528 | :type softwareversion: str |
||
529 | |||
530 | :param localdir: Working directory. Local by default. |
||
531 | :type localdir: str |
||
532 | |||
533 | :param radios: Whether to create radio autoloaders. True by default. |
||
534 | :type radios: bool |
||
535 | |||
536 | :param compressed: Whether to compress files. True by default. |
||
537 | :type compressed: bool |
||
538 | |||
539 | :param deleted: Whether to delete uncompressed files. True by default. |
||
540 | :type deleted: bool |
||
541 | |||
542 | :param hashed: Whether to hash files. True by default. |
||
543 | :type hashed: bool |
||
544 | |||
545 | :param hashdict: Dictionary of hash rules, in ~\bbarchivist.ini. |
||
546 | :type hashdict: dict({str: bool}) |
||
547 | |||
548 | :param download: Whether to download bar files. True by default. |
||
549 | :type download: bool |
||
550 | |||
551 | :param extract: Whether to extract bar files. True by default. |
||
552 | :type extract: bool |
||
553 | |||
554 | :param signed: Whether to delete signed files. True by default. |
||
555 | :type signed: bool |
||
556 | |||
557 | :param compmethod: Compression method. Default is "7z", fallback "zip". |
||
558 | :type compmethod: str |
||
559 | |||
560 | :param gpg: Whether to use GnuPG verification. False by default. |
||
561 | :type gpg: bool |
||
562 | |||
563 | :param integrity: Whether to test downloaded files. True by default. |
||
564 | :type integrity: bool |
||
565 | |||
566 | :param altsw: Radio software release, if not the same as OS. |
||
567 | :type altsw: str |
||
568 | |||
569 | :param core: Whether to create a core/radio loader. Default is false. |
||
570 | :type core: bool |
||
571 | |||
572 | :param oldstyle: Whether to make old-style checksum files. Default is false. |
||
573 | :type oldstyle: bool |
||
574 | """ |
||
575 | if deleted and not compressed: |
||
576 | deleted = False # don't delete what we want to keep |
||
577 | radioversion = scriptutils.return_radio_version(osversion, radioversion) |
||
578 | softwareversion, swchecked = scriptutils.return_sw_checked(softwareversion, osversion) |
||
579 | if altsw == "checkme": |
||
580 | altsw, altchecked = scriptutils.return_radio_sw_checked(altsw, radioversion) |
||
581 | localdir = utilities.dirhandler(localdir, os.getcwd()) |
||
582 | if hashed and hashdict is None: |
||
583 | hashdict = hashutils.verifier_config_loader() |
||
584 | hashutils.verifier_config_writer(hashdict) |
||
585 | scriptutils.standard_preamble("archivist", osversion, softwareversion, radioversion, altsw) |
||
586 | # Generate download URLs |
||
587 | baseurl, alturl = scriptutils.get_baseurls(softwareversion, altsw) |
||
588 | osurls, radiourls, cores = utilities.generate_urls(softwareversion, osversion, radioversion, True) |
||
589 | osurls = cores if core else osurls |
||
590 | for idx, url in enumerate(osurls): |
||
591 | if "qc8960.factory_sfi" in url: |
||
592 | vzwurl = url |
||
593 | vzwindex = idx |
||
594 | break |
||
595 | if not networkutils.availability(vzwurl): |
||
1 ignored issue
–
show
|
|||
596 | osurls[vzwindex] = osurls[vzwindex].replace("qc8960.factory_sfi", "qc8960.verizon_sfi") |
||
1 ignored issue
–
show
|
|||
597 | osurls = list(set(osurls)) # pop duplicates |
||
598 | if altsw: |
||
599 | radiourls2 = [x.replace(baseurl, alturl) for x in radiourls] |
||
600 | radiourls = radiourls2 |
||
601 | del radiourls2 |
||
602 | radiourls = list(set(radiourls)) # pop duplicates |
||
603 | archivist_checksw(baseurl, softwareversion, swchecked) |
||
604 | if altsw: |
||
605 | scriptutils.check_radio_sw(alturl, altsw, altchecked) |
||
1 ignored issue
–
show
|
|||
606 | # Check availability of OS, radio |
||
607 | scriptutils.check_os_bulk(osurls) |
||
608 | radiourls, radioversion = scriptutils.check_radio_bulk(radiourls, radioversion) |
||
609 | # Get 7z executable |
||
610 | compmethod, szexe = scriptutils.get_sz_executable(compmethod) |
||
611 | # Make dirs: bd_o, bd_r, ld_o, ld_r, zd_o, zd_r |
||
612 | dirs = barutils.make_dirs(localdir, osversion, radioversion) |
||
613 | osurls = scriptutils.bulk_avail(osurls) |
||
614 | radiourls = scriptutils.bulk_avail(radiourls) |
||
615 | sess = requests.Session() |
||
616 | archivist_download(download, osurls, radiourls, localdir, sess, dirs) |
||
617 | archivist_integritybars(integrity, osurls, radiourls, localdir) |
||
618 | archivist_extractbars(extract, localdir) |
||
619 | archivist_integritysigned(extract, localdir) |
||
620 | archivist_movebars(dirs, localdir) |
||
621 | archivist_generateloaders(osversion, radioversion, radios, localdir, altsw, core) |
||
622 | archivist_integrityloaders(integrity, localdir) |
||
623 | archivist_removesigned(signed, localdir) |
||
624 | archivist_compressor(compressed, integrity, localdir, compmethod, szexe) |
||
625 | archivist_moveloaders(dirs, localdir) |
||
626 | archivist_gethashes(dirs, hashed, compressed, deleted, radios, osversion, radioversion, softwareversion, oldstyle) |
||
627 | archivist_getoldhashes(dirs, hashed, compressed, deleted, radios, hashdict, oldstyle) |
||
628 | archivist_gpg(gpg, dirs, compressed, deleted, radios) |
||
629 | archivist_deleteuncompressed(dirs, deleted, radios) |
||
630 | archivist_removeemptyfolders(localdir) |
||
631 | print("\nFINISHED!") |
||
632 | |||
633 | |||
634 | if __name__ == "__main__": |
||
635 | grab_args() |
||
636 | decorators.enter_to_exit(False) |
||
637 |