Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: debug-scripts/py/, roverlay/interface/, roverlay/, roverlay/recipe/
Date: Tue, 30 Jul 2013 18:40:28
Message-Id: 1375200483.74ab23790239567dee35061cd541eec74b24a434.dywi@gentoo
1 commit: 74ab23790239567dee35061cd541eec74b24a434
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Tue Jul 30 16:08:03 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Tue Jul 30 16:08:03 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=74ab2379
7
8 move common script functionality to roverlay/core
9
10 ---
11 debug-scripts/py/console.py | 10 +--
12 debug-scripts/py/descreader.py | 13 +--
13 debug-scripts/py/nosync-rforge.py | 84 +++++++++---------
14 roverlay/__init__.py | 66 --------------
15 roverlay/argutil.py | 12 +--
16 roverlay/core.py | 178 ++++++++++++++++++++++++++++++++++++++
17 roverlay/interface/main.py | 2 +-
18 roverlay/interface/root.py | 8 +-
19 roverlay/main.py | 127 ++++-----------------------
20 roverlay/recipe/easyresolver.py | 7 +-
21 roverlay/versiontuple.py | 2 +-
22 11 files changed, 263 insertions(+), 246 deletions(-)
23
24 diff --git a/debug-scripts/py/console.py b/debug-scripts/py/console.py
25 index 52f1112..e91b075 100644
26 --- a/debug-scripts/py/console.py
27 +++ b/debug-scripts/py/console.py
28 @@ -4,10 +4,8 @@
29 #
30
31 import argparse
32 -import logging
33
34 -import roverlay.main
35 -import roverlay.recipe.easylogger
36 +import roverlay.core
37 import roverlay.console.depres
38 import roverlay.console.remote
39
40 @@ -27,7 +25,7 @@ parser.add_argument (
41
42 parser.add_argument (
43 '--config', '-C', metavar='<file>', dest='config_file',
44 - default=roverlay.main.locate_config_file ( False ),
45 + default=roverlay.core.locate_config_file ( False ),
46 help="config file [%(default)s]",
47 )
48
49 @@ -41,9 +39,7 @@ def main():
50 con_cls = CON_MAP [arg_config.mode]
51
52 if arg_config.log_all:
53 - roverlay.recipe.easylogger.force_reset()
54 - roverlay.recipe.easylogger.setup_initial ( log_level=logging.DEBUG )
55 - roverlay.recipe.easylogger.freeze_status()
56 + roverlay.core.force_console_logging()
57
58 with con_cls ( config_file=arg_config.config_file )as con:
59 con.run_forever()
60
61 diff --git a/debug-scripts/py/descreader.py b/debug-scripts/py/descreader.py
62 index e1e4251..2f1a3e9 100644
63 --- a/debug-scripts/py/descreader.py
64 +++ b/debug-scripts/py/descreader.py
65 @@ -4,21 +4,16 @@
66 from __future__ import print_function
67
68 import sys
69 -import logging
70
71 -import roverlay
72 -import roverlay.main
73 -import roverlay.recipe.easylogger
74 +import roverlay.core
75 import roverlay.rpackage.descriptionreader
76
77
78 def setup():
79 - roverlay.recipe.easylogger.force_reset()
80 - roverlay.recipe.easylogger.setup_initial ( log_level=logging.DEBUG )
81 - roverlay.recipe.easylogger.freeze_status()
82 + roverlay.core.force_console_logging()
83
84 - config_file = roverlay.main.locate_config_file ( False )
85 - return roverlay.load_config_file (
86 + config_file = roverlay.core.locate_config_file ( False )
87 + return roverlay.core.load_config_file (
88 config_file, setup_logger=False,
89 extraconf={
90 'installed': False,
91
92 diff --git a/debug-scripts/py/nosync-rforge.py b/debug-scripts/py/nosync-rforge.py
93 index cf0b888..29db4a0 100644
94 --- a/debug-scripts/py/nosync-rforge.py
95 +++ b/debug-scripts/py/nosync-rforge.py
96 @@ -8,61 +8,63 @@
97 import sys
98 import logging
99
100 +## initialize interface (main and remote)
101 +import roverlay.core
102 +import roverlay.interface.main
103
104 -## repo to (no)sync
105 -get_arg = lambda i, UNSET: sys.argv[i] if len ( sys.argv ) > i else UNSET
106 -
107 -REPO_IN_QUESTION = get_arg ( 1, None ) or 'R-Forge'
108 -REPO_CONFIG = get_arg ( 2, None )
109
110 +def main():
111 + ## repo to (no)sync
112 + get_arg = lambda i, UNSET: sys.argv[i] if len ( sys.argv ) > i else UNSET
113
114 -## log everything to console
115 -import roverlay.recipe.easylogger
116 -roverlay.recipe.easylogger.setup_initial ( log_level=logging.DEBUG )
117 -roverlay.recipe.easylogger.freeze_status()
118 + REPO_IN_QUESTION = get_arg ( 1, None ) or 'R-Forge'
119 + REPO_CONFIG = get_arg ( 2, None )
120
121
122 -## initialize interface (main and remote)
123 -import roverlay.main
124 -import roverlay.interface.main
125 + ## log everything to console
126 + roverlay.core.force_console_logging()
127
128 -MAIN_IF = roverlay.interface.main.MainInterface (
129 - config_file=roverlay.main.locate_config_file ( False )
130 -)
131 + MAIN_IF = roverlay.interface.main.MainInterface (
132 + config_file=roverlay.core.locate_config_file ( False )
133 + )
134
135
136 -REPO_IF = MAIN_IF.spawn_interface ( "remote" )
137 -if REPO_CONFIG:
138 - REPO_IF.load_repo_file ( REPO_CONFIG )
139 -else:
140 - REPO_IF.load_configured()
141 + REPO_IF = MAIN_IF.spawn_interface ( "remote" )
142 + if REPO_CONFIG:
143 + REPO_IF.load_repo_file ( REPO_CONFIG )
144 + else:
145 + REPO_IF.load_configured()
146
147 -REPO_IF.disable_sync()
148 + REPO_IF.disable_sync()
149
150
151 -## sync repo and report status
152 -REPO_IF.sync_named_repo ( REPO_IN_QUESTION, enable_sync=False )
153 + ## sync repo and report status
154 + REPO_IF.sync_named_repo ( REPO_IN_QUESTION, enable_sync=False )
155
156 -repo = REPO_IF.get_repo_by_name ( REPO_IN_QUESTION )
157 -if repo is not None:
158 - repo_status = repo.sync_status
159 - repo_ready = repo.ready()
160 + repo = REPO_IF.get_repo_by_name ( REPO_IN_QUESTION )
161 + if repo is not None:
162 + repo_status = repo.sync_status
163 + repo_ready = repo.ready()
164
165 - print ( "--- snip ---" )
166 - print ( "repo: " + str ( repo ) )
167 - if not repo_ready:
168 - print ( "{n} would be ignored!".format ( n=REPO_IN_QUESTION ) )
169 - print (
170 - "{n}.ready() = {r} (sync_status={s:d})".format (
171 - n=REPO_IN_QUESTION, r=repo_ready, s=repo_status,
172 + print ( "--- snip ---" )
173 + print ( "repo: " + str ( repo ) )
174 + if not repo_ready:
175 + print ( "{n} would be ignored!".format ( n=REPO_IN_QUESTION ) )
176 + print (
177 + "{n}.ready() = {r} (sync_status={s:d})".format (
178 + n=REPO_IN_QUESTION, r=repo_ready, s=repo_status,
179 + )
180 )
181 - )
182
183 -else:
184 - print ( "no such repo: " + REPO_IN_QUESTION )
185 + else:
186 + print ( "no such repo: " + REPO_IN_QUESTION )
187 +
188
189 + ### switch to python console
190 + #import code
191 + #con = code.InteractiveConsole ( locals=locals() )
192 + #con.interact()
193 +# --- end of main (...) ---
194
195 -### switch to python console
196 -#import code
197 -#con = code.InteractiveConsole ( locals=locals() )
198 -#con.interact()
199 +if __name__ == '__main__':
200 + main()
201
202 diff --git a/roverlay/__init__.py b/roverlay/__init__.py
203 index f660a4a..db229c0 100644
204 --- a/roverlay/__init__.py
205 +++ b/roverlay/__init__.py
206 @@ -3,69 +3,3 @@
207 # Copyright (C) 2012, 2013 André Erdmann <dywi@×××××××.de>
208 # Distributed under the terms of the GNU General Public License;
209 # either version 2 of the License, or (at your option) any later version.
210 -
211 -"""R overlay package
212 -
213 -Provides roverlay initialization helpers (setup_initial_logger,
214 -load_config_file) and some information vars (version, name, ...).
215 -"""
216 -
217 -__all__ = [ 'setup_initial_logger', 'load_config_file', ]
218 -
219 -name = "R_overlay"
220 -version = "0.2.5"
221 -
222 -description_str = "R overlay creation (roverlay) " + version
223 -license_str=(
224 - 'Copyright (C) 2012, 2013 Andr\xc3\xa9 Erdmann\n'
225 - 'Distributed under the terms of the GNU General Public License;\n'
226 - 'either version 2 of the License, or (at your option) any later version.\n'
227 -)
228 -
229 -import roverlay.config
230 -import roverlay.recipe.easylogger
231 -
232 -
233 -def setup_initial_logger():
234 - """Sets up initial logging."""
235 - roverlay.recipe.easylogger.setup_initial()
236 -
237 -def load_config_file (
238 - cfile, extraconf=None, setup_logger=True, load_main_only=False
239 -):
240 - """
241 - Loads the config, including the field definition file.
242 - Sets up the logger afterwards.
243 - (Don't call this method more than once.)
244 -
245 - arguments:
246 - * cfile -- path to the config file
247 - * extraconf -- a dict with additional config entries that will override
248 - entries read from cfile
249 - * setup_logger -- set up logger (defaults to True)
250 - * load_main_only -- if set and True: load main config file only
251 - (= do not load field def, ...)
252 - """
253 - roverlay_config = roverlay.config.access()
254 -
255 - confloader = roverlay_config.get_loader()
256 -
257 - if cfile:
258 - confloader.load_config ( cfile )
259 -
260 - if extraconf is not None:
261 - roverlay_config.merge_with ( extraconf )
262 -
263 - if setup_logger:
264 - roverlay.recipe.easylogger.setup ( roverlay_config )
265 -
266 - if not load_main_only:
267 - confloader.load_field_definition (
268 - roverlay_config.get_or_fail ( "DESCRIPTION.field_definition_file" )
269 - )
270 -
271 - confloader.load_use_expand_map (
272 - roverlay_config.get ( "EBUILD.USE_EXPAND.rename_file" )
273 - )
274 -
275 - return roverlay_config
276
277 diff --git a/roverlay/argutil.py b/roverlay/argutil.py
278 index 04ea84f..b101169 100644
279 --- a/roverlay/argutil.py
280 +++ b/roverlay/argutil.py
281 @@ -13,7 +13,7 @@ import argparse
282 import pwd
283 import grp
284
285 -import roverlay
286 +import roverlay.core
287
288 def get_uid ( user ):
289 try:
290 @@ -119,7 +119,7 @@ def get_parser ( command_map, default_config_file, default_command='create' ):
291
292 parser = argparse.ArgumentParser (
293 description='\n'.join ((
294 - roverlay.description_str, roverlay.license_str,
295 + roverlay.core.description_str, roverlay.core.license_str,
296 )),
297 epilog = 'Known commands:\n' + '\n'.join (
298 (
299 @@ -145,14 +145,16 @@ def get_parser ( command_map, default_config_file, default_command='create' ):
300 # adding args starts here
301
302 arg (
303 - '-V', '--version', action='version', version=roverlay.version
304 + '-V', '--version', action='version', version=roverlay.core.version
305 )
306
307 arg (
308 'commands',
309 default=default_command,
310 - help="action to perform. choices are " + ', '.join (command_map.keys()) \
311 - + ". defaults to %(default)s.",
312 + help=(
313 + 'action to perform. choices are ' + ', '.join (command_map.keys())
314 + + '. defaults to %(default)s.'
315 + ),
316 nargs="*",
317 choices=command_map.keys(),
318 metavar="command"
319
320 diff --git a/roverlay/core.py b/roverlay/core.py
321 new file mode 100644
322 index 0000000..6e095e1
323 --- /dev/null
324 +++ b/roverlay/core.py
325 @@ -0,0 +1,178 @@
326 +# R overlay -- roverlay package, core functions
327 +# -*- coding: utf-8 -*-
328 +# Copyright (C) 2012, 2013 André Erdmann <dywi@×××××××.de>
329 +# Distributed under the terms of the GNU General Public License;
330 +# either version 2 of the License, or (at your option) any later version.
331 +
332 +"""R overlay package
333 +
334 +Provides roverlay initialization helpers (setup_initial_logger,
335 +load_config_file) and some information vars (version, name, ...).
336 +"""
337 +
338 +__all__ = [
339 + 'DIE', 'die', 'setup_initial_logger', 'load_config_file',
340 + 'locate_config_file', 'default_helper_setup', 'load_locate_config_file',
341 +]
342 +
343 +import os
344 +import sys
345 +import logging
346 +
347 +import roverlay.config
348 +import roverlay.recipe.easylogger
349 +import roverlay.tools.shenv
350 +
351 +
352 +name = "R_overlay"
353 +version = "0.2.5"
354 +
355 +description_str = "R overlay creation (roverlay) " + version
356 +license_str = (
357 + 'Copyright (C) 2012, 2013 Andr\xc3\xa9 Erdmann\n'
358 + 'Distributed under the terms of the GNU General Public License;\n'
359 + 'either version 2 of the License, or (at your option) any later version.\n'
360 +)
361 +
362 +DEFAULT_CONFIG_FILE_NAME = "R-overlay.conf"
363 +
364 +# directories where the config file could be found if roverlay has been
365 +# installed, in order:
366 +# * user roverlay dir (${HOME}/roverlay)
367 +# * system config dir /etc/roverlay
368 +#
369 +# Note: $PWD has been removed
370 +#
371 +CONFIG_DIRS = tuple ((
372 + (
373 + ( os.getenv ( 'HOME' ) or os.path.expanduser ( '~' ) )
374 + + os.sep + 'roverlay'
375 + ),
376 + # os.sep is '/' if /etc exists, so don't care about that
377 + '/etc/roverlay',
378 +))
379 +
380 +class DIE ( object ):
381 + """Container class for various system exit 'events'."""
382 + NOP = os.EX_OK
383 + ERR = 1
384 + BAD_USAGE = os.EX_USAGE
385 + USAGE = os.EX_USAGE
386 + ARG = 9
387 + CONFIG = os.EX_CONFIG
388 + OV_CREATE = 20
389 + SYNC = 30
390 + CMD_LEFTOVER = 90
391 + IMPORT = 91
392 + UNKNOWN = 95
393 + INTERRUPT = 130
394 +
395 + @staticmethod
396 + def die ( msg=None, code=None ):
397 + """
398 + Calls syst.exit (code:=DIE.ERR) after printing a message (if any).
399 + """
400 + code = DIE.ERR if code is None else code
401 + if msg is not None:
402 + sys.stderr.write ( msg + "\n" )
403 +# else:
404 +# sys.stderr.write ( "died.\n" )
405 + sys.exit ( code )
406 + # --- end of die (...) ---
407 +
408 +# --- DIE: exit codes ---
409 +die = DIE.die
410 +
411 +
412 +def setup_initial_logger():
413 + """Sets up initial logging."""
414 + roverlay.recipe.easylogger.setup_initial()
415 +# --- end of setup_initial_logger (...) ---
416 +
417 +def force_console_logging ( log_level=logging.DEBUG ):
418 + roverlay.recipe.easylogger.force_reset()
419 + roverlay.recipe.easylogger.setup_initial ( log_level=log_level )
420 + roverlay.recipe.easylogger.freeze_status()
421 +# --- end of force_console_logging (...) ---
422 +
423 +def load_config_file (
424 + cfile, extraconf=None, setup_logger=True, load_main_only=False
425 +):
426 + """
427 + Loads the config, including the field definition file.
428 + Sets up the logger afterwards.
429 + (Don't call this method more than once.)
430 +
431 + arguments:
432 + * cfile -- path to the config file
433 + * extraconf -- a dict with additional config entries that will override
434 + entries read from cfile
435 + * setup_logger -- set up logger (defaults to True)
436 + * load_main_only -- if set and True: load main config file only
437 + (= do not load field def, ...)
438 + """
439 + roverlay_config = roverlay.config.access()
440 +
441 + confloader = roverlay_config.get_loader()
442 +
443 + if cfile:
444 + confloader.load_config ( cfile )
445 +
446 + if extraconf is not None:
447 + roverlay_config.merge_with ( extraconf )
448 +
449 + if setup_logger:
450 + roverlay.recipe.easylogger.setup ( roverlay_config )
451 +
452 + if not load_main_only:
453 + confloader.load_field_definition (
454 + roverlay_config.get_or_fail ( "DESCRIPTION.field_definition_file" )
455 + )
456 +
457 + confloader.load_use_expand_map (
458 + roverlay_config.get ( "EBUILD.USE_EXPAND.rename_file" )
459 + )
460 +
461 + return roverlay_config
462 +
463 +# --- end of load_config_file (...) ---
464 +
465 +def locate_config_file (
466 + ROVERLAY_INSTALLED, CONFIG_FILE_NAME=DEFAULT_CONFIG_FILE_NAME
467 +):
468 + DEFAULT_CONFIG_FILE = None
469 + # search for the config file if roverlay has been installed
470 + if ROVERLAY_INSTALLED:
471 + cfg = None
472 + config_dir = None
473 +
474 + for config_dir in CONFIG_DIRS:
475 + cfg = config_dir + os.sep + CONFIG_FILE_NAME
476 + if os.path.isfile ( cfg ):
477 + DEFAULT_CONFIG_FILE = cfg
478 + break
479 +
480 + del config_dir, cfg
481 + elif os.path.exists ( CONFIG_FILE_NAME ):
482 + DEFAULT_CONFIG_FILE = CONFIG_FILE_NAME
483 +
484 + return DEFAULT_CONFIG_FILE
485 +# --- end of locate_config_file (...) ---
486 +
487 +def load_locate_config_file (
488 + ROVERLAY_INSTALLED, CONFIG_FILE_NAME=DEFAULT_CONFIG_FILE_NAME, **kw
489 +):
490 + return load_config_file (
491 + locate_config_file ( ROVERLAY_INSTALLED, CONFIG_FILE_NAME ), **kw
492 + )
493 +# --- end of load_locate_config_file (...) ---
494 +
495 +def default_helper_setup ( ROVERLAY_INSTALLED ):
496 + setup_initial_logger()
497 + config = load_locate_config_file (
498 + ROVERLAY_INSTALLED, extraconf={ 'installed': ROVERLAY_INSTALLED, },
499 + setup_logger=False, load_main_only=True,
500 + )
501 + roverlay.tools.shenv.setup_env()
502 + return config
503 +# --- end of default_helper_setup (...) ---
504
505 diff --git a/roverlay/interface/main.py b/roverlay/interface/main.py
506 index db4ed50..1e4efb9 100644
507 --- a/roverlay/interface/main.py
508 +++ b/roverlay/interface/main.py
509 @@ -10,7 +10,7 @@ import roverlay.interface.root
510 import roverlay.interface.depres
511 import roverlay.interface.remote
512
513 -roverlay.setup_initial_logger()
514 +roverlay.core.setup_initial_logger()
515
516 class MainInterface ( roverlay.interface.root.RootInterface ):
517
518
519 diff --git a/roverlay/interface/root.py b/roverlay/interface/root.py
520 index 5a4f386..1ea4ef1 100644
521 --- a/roverlay/interface/root.py
522 +++ b/roverlay/interface/root.py
523 @@ -6,14 +6,14 @@
524
525 import logging
526
527 -import roverlay
528 +import roverlay.core
529 import roverlay.errorqueue
530 import roverlay.hook
531
532 import roverlay.interface.generic
533
534 # does nothing if already initialized
535 -roverlay.setup_initial_logger()
536 +roverlay.core.setup_initial_logger()
537
538 class RootInterface ( roverlay.interface.generic.RoverlayInterface ):
539 """Root interfaces for accessing roverlay interfaces.
540 @@ -70,14 +70,14 @@ class RootInterface ( roverlay.interface.generic.RoverlayInterface ):
541 self.config = config
542 elif config_file is not None:
543 if additional_config is None:
544 - self.config = roverlay.load_config_file (
545 + self.config = roverlay.core.load_config_file (
546 config_file, extraconf={ 'installed': False, }
547 )
548 else:
549 # modifies additional_config
550 additional_config.update ( { 'installed': False, } )
551
552 - self.config = roverlay.load_config_file (
553 + self.config = roverlay.core.load_config_file (
554 config_file, extraconf=additional_config
555 )
556 else:
557
558 diff --git a/roverlay/main.py b/roverlay/main.py
559 index 04678fa..9cca0a8 100644
560 --- a/roverlay/main.py
561 +++ b/roverlay/main.py
562 @@ -10,95 +10,21 @@ __all__ = [ 'main' ]
563
564 import os
565 import sys
566 +import stat
567
568 import roverlay
569 +import roverlay.core
570 +import roverlay.argutil
571 import roverlay.tools.shenv
572 import roverlay.stats.collector
573 +import roverlay.util
574 +import roverlay.config.entrymap
575 +import roverlay.config.entryutil
576 +import roverlay.packagerules.rules
577
578 -# roverlay modules will be imported later
579 -
580 -DEFAULT_CONFIG_FILE_NAME = "R-overlay.conf"
581 -
582 -# directories where the config file could be found if roverlay has been
583 -# installed, in order:
584 -# * ${PWD}
585 -# * user roverlay dir (${HOME}/roverlay)
586 -# * system config dir /etc/roverlay
587 -CONFIG_DIRS = tuple ((
588 - '.',
589 - (
590 - ( os.getenv ( 'HOME' ) or os.path.expanduser ( '~' ) )
591 - + os.sep + 'roverlay'
592 - ),
593 - # os.sep is '/' if /etc exists, so don't care about that
594 - '/etc/roverlay',
595 -))
596 -
597 -
598 -class DIE ( object ):
599 - """Container class for various system exit 'events'."""
600 - NOP = os.EX_OK
601 - ERR = 1
602 - BAD_USAGE = os.EX_USAGE
603 - USAGE = os.EX_USAGE
604 - ARG = 9
605 - CONFIG = os.EX_CONFIG
606 - OV_CREATE = 20
607 - SYNC = 30
608 - CMD_LEFTOVER = 90
609 - IMPORT = 91
610 - UNKNOWN = 95
611 - INTERRUPT = 130
612 -
613 - @staticmethod
614 - def die ( msg=None, code=None ):
615 - """
616 - Calls syst.exit (code:=DIE.ERR) after printing a message (if any).
617 - """
618 - code = DIE.ERR if code is None else code
619 - if msg is not None:
620 - sys.stderr.write ( msg + "\n" )
621 -# else:
622 -# sys.stderr.write ( "died.\n" )
623 - sys.exit ( code )
624 - # --- end of die (...) ---
625 -
626 -# --- DIE: exit codes ---
627 -die = DIE.die
628 -
629 -def locate_config_file (
630 - ROVERLAY_INSTALLED, CONFIG_FILE_NAME=DEFAULT_CONFIG_FILE_NAME
631 -):
632 - DEFAULT_CONFIG_FILE = None
633 - # search for the config file if roverlay has been installed
634 - if ROVERLAY_INSTALLED:
635 - cfg = None
636 - config_dir = None
637 -
638 - for config_dir in CONFIG_DIRS:
639 - cfg = config_dir + os.sep + CONFIG_FILE_NAME
640 - if os.path.isfile ( cfg ):
641 - DEFAULT_CONFIG_FILE = cfg
642 - break
643 -
644 - del config_dir, cfg
645 - elif os.path.exists ( CONFIG_FILE_NAME ):
646 - DEFAULT_CONFIG_FILE = CONFIG_FILE_NAME
647 -
648 - return DEFAULT_CONFIG_FILE
649 -# --- end of locate_config_file (...) ---
650 -
651 -def default_helper_setup ( ROVERLAY_INSTALLED ):
652 - roverlay.setup_initial_logger()
653 - config_file = locate_config_file ( ROVERLAY_INSTALLED=ROVERLAY_INSTALLED )
654 -
655 - config = roverlay.load_config_file (
656 - config_file, extraconf={ 'installed': ROVERLAY_INSTALLED, },
657 - setup_logger=False, load_main_only=True,
658 - )
659 - roverlay.tools.shenv.setup_env()
660 - return config
661 -# --- end of default_helper_setup (...) ---
662 +
663 +DIE = roverlay.core.DIE
664 +die = roverlay.core.die
665
666 def run_script_main_installed():
667 return run_script_main ( True )
668 @@ -107,7 +33,7 @@ def run_script_main ( ROVERLAY_INSTALLED ):
669 if len ( sys.argv ) < 2 or not sys.argv[0]:
670 die ( "no executable specified.", DIE.USAGE )
671
672 - default_helper_setup ( ROVERLAY_INSTALLED )
673 + roverlay.core.default_helper_setup ( ROVERLAY_INSTALLED )
674 roverlay.tools.shenv.run_script_exec (
675 sys.argv[1], "runscript", sys.argv[1:], use_path=True
676 )
677 @@ -117,7 +43,7 @@ def run_shell_main_installed():
678 return run_shell_main ( True )
679
680 def run_shell_main ( ROVERLAY_INSTALLED ):
681 - config = default_helper_setup ( ROVERLAY_INSTALLED )
682 + config = roverlay.core.default_helper_setup ( ROVERLAY_INSTALLED )
683 shell = config.get ( 'SHELL_ENV.shell', '/bin/sh' )
684 roverlay.tools.shenv.run_script_exec (
685 shell, "shell", [ shell, ] + sys.argv [1:], use_path=False
686 @@ -126,10 +52,6 @@ def run_shell_main ( ROVERLAY_INSTALLED ):
687
688
689 def run_setupdirs ( config, target_uid, target_gid ):
690 - import stat
691 - import roverlay.util
692 - import roverlay.config.entrymap
693 - import roverlay.config.entryutil
694
695 dodir = roverlay.util.dodir
696 find_config_path = roverlay.config.entryutil.find_config_path
697 @@ -181,7 +103,7 @@ def main_installed():
698 def main (
699 ROVERLAY_INSTALLED,
700 HIDE_EXCEPTIONS=False,
701 - CONFIG_FILE_NAME=DEFAULT_CONFIG_FILE_NAME
702 + CONFIG_FILE_NAME=roverlay.core.DEFAULT_CONFIG_FILE_NAME
703 ):
704 """main() - parse args, run overlay creation, sync, ...
705
706 @@ -421,9 +343,9 @@ def main (
707 # ********************
708
709 # get args
710 - # imports roverlay.argutil (deleted when done)
711 try:
712 - import roverlay.argutil
713 + # FIXME: why is the reimport of roverlay necessary?
714 + import roverlay
715 except ImportError:
716 if HIDE_EXCEPTIONS:
717 die ( "Cannot import roverlay modules!", DIE.IMPORT )
718 @@ -443,7 +365,7 @@ def main (
719 }
720
721
722 - DEFAULT_CONFIG_FILE = locate_config_file (
723 + DEFAULT_CONFIG_FILE = roverlay.core.locate_config_file (
724 ROVERLAY_INSTALLED, CONFIG_FILE_NAME
725 )
726
727 @@ -457,7 +379,6 @@ def main (
728
729 OPTION = extra_opts.get
730
731 - del roverlay.argutil
732
733 # -- determine commands to run
734 # (TODO) could replace this section when adding more actions
735 @@ -491,18 +412,10 @@ def main (
736 # imports: roverlay, roverlay.config.entryutil (if --help-config)
737
738 try:
739 - import roverlay
740 - except ImportError:
741 - if HIDE_EXCEPTIONS:
742 - die ( "Cannot import roverlay modules!", DIE.IMPORT )
743 - else:
744 - raise
745 -
746 - try:
747 roverlay.stats.collector.static.time.begin ( "setup" )
748 - roverlay.setup_initial_logger()
749 + roverlay.core.setup_initial_logger()
750
751 - conf = roverlay.load_config_file (
752 + conf = roverlay.core.load_config_file (
753 config_file,
754 extraconf = additional_config,
755 setup_logger = want_logging,
756 @@ -549,8 +462,6 @@ def main (
757 if OPTION ( 'print_package_rules' ):
758 # no try-/catch block here
759
760 - import roverlay.packagerules.rules
761 -
762 package_rules = (
763 roverlay.packagerules.rules.PackageRules.get_configured()
764 )
765 @@ -639,7 +550,7 @@ def main (
766
767
768 if STATS_DB_FILE and want_db_commit:
769 - roverlay.stats.collector.static.write_db()
770 + roverlay.stats.collector.static.write_database()
771 roverlay.hook.run ( 'db_written' )
772
773
774
775 diff --git a/roverlay/recipe/easyresolver.py b/roverlay/recipe/easyresolver.py
776 index 9055516..70cf108 100644
777 --- a/roverlay/recipe/easyresolver.py
778 +++ b/roverlay/recipe/easyresolver.py
779 @@ -8,10 +8,9 @@
780
781 __all__ = [ 'setup', ]
782
783 -from roverlay import config
784 -from roverlay.depres import listeners, deptype
785 -from roverlay.depres.depresolver import DependencyResolver
786 -from roverlay.depres.simpledeprule import SimpleDependencyRulePool
787 +from roverlay import config
788 +from roverlay.depres import listeners
789 +from roverlay.depres.depresolver import DependencyResolver
790
791
792 def setup ( err_queue ):
793
794 diff --git a/roverlay/versiontuple.py b/roverlay/versiontuple.py
795 index 20d5cf8..6586088 100644
796 --- a/roverlay/versiontuple.py
797 +++ b/roverlay/versiontuple.py
798 @@ -114,7 +114,7 @@ class VersionTuple ( tuple ):
799 * keep_eq -- preserve VMOD_EQ when determining the inverse of mode
800 (Example: '<' becomes '>' if True, else '>=')
801 """
802 - f = self.get_comparator ( vmod_inverse ( mode, keep_eq=True ) )
803 + f = self.get_comparator ( vmod_inverse ( mode, keep_eq=keep_eq ) )
804 return pkgver_decorator ( f ) if f is not None else None
805 # --- end of get_package_comparator (...) ---