From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/interface/
Date: Wed, 3 Jul 2013 17:20:36 +0000 (UTC) [thread overview]
Message-ID: <1372870781.7dee38ce521eec08275ad6d6a259eaa6ed16602a.dywi@gentoo> (raw)
commit: 7dee38ce521eec08275ad6d6a259eaa6ed16602a
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Wed Jul 3 16:59:41 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Wed Jul 3 16:59:41 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=7dee38ce
roverlay/interface: fixup
---
roverlay/interface/depres.py | 2 ++
roverlay/interface/generic.py | 4 +++-
roverlay/interface/main.py | 30 ++++++++++++++++++++++++++++++
roverlay/interface/root.py | 37 ++++++++++++++++++++++++++++++++-----
4 files changed, 67 insertions(+), 6 deletions(-)
diff --git a/roverlay/interface/depres.py b/roverlay/interface/depres.py
index d416312..e9ac5b7 100644
--- a/roverlay/interface/depres.py
+++ b/roverlay/interface/depres.py
@@ -69,6 +69,7 @@ class DepresInterface ( roverlay.interface.generic.RoverlaySubInterface ):
def close ( self ):
super ( DepresInterface, self ).close()
self._resolver.close()
+ return self
# --- end of close (...) ---
def update ( self ):
@@ -76,6 +77,7 @@ class DepresInterface ( roverlay.interface.generic.RoverlaySubInterface ):
if self._poolstack:
self._poolstack[-1].sort()
self._update_resolver()
+ return self
# --- end of update (...) ---
def has_pool ( self ):
diff --git a/roverlay/interface/generic.py b/roverlay/interface/generic.py
index 08806ea..c6678f3 100644
--- a/roverlay/interface/generic.py
+++ b/roverlay/interface/generic.py
@@ -21,10 +21,11 @@ class RoverlayInterface ( object ):
def close ( self ):
self.close_interfaces()
+ return self
# --- end of close (...) ---
def update ( self ):
- pass
+ return self
# --- end of update (...) ---
def attach_interface ( self, name, interface, close_detached=True ):
@@ -37,6 +38,7 @@ class RoverlayInterface ( object ):
def detach_interface ( self, name, close=False ):
detached = self._interfaces [name]
+ del self._interfaces [name]
if close:
detached.close()
return True
diff --git a/roverlay/interface/main.py b/roverlay/interface/main.py
new file mode 100644
index 0000000..dfa89e2
--- /dev/null
+++ b/roverlay/interface/main.py
@@ -0,0 +1,30 @@
+# R overlay --
+# -*- coding: utf-8 -*-
+# Copyright (C) 2013 André Erdmann <dywi@mailerd.de>
+# Distributed under the terms of the GNU General Public License;
+# either version 2 of the License, or (at your option) any later version.
+
+import roverlay
+
+import roverlay.interface.root
+import roverlay.interface.depres
+
+roverlay.setup_initial_logger()
+
+class MainInterface ( roverlay.interface.root.RootInterface ):
+
+ def __init__ ( self, *args, **kwargs ):
+ if args or kwargs:
+ self.setup ( *args, **kwargs )
+ # --- end of __init__ (...) ---
+
+ def setup ( self, config_file, *args, **kw ):
+ self.config_file = config_file
+ super ( MainInterface, self ).__init__ (
+ config_file=config_file, *args, **kw
+ )
+ self.__class__.register_interface (
+ "depres", roverlay.interface.depres.DepresInterface
+ )
+ return True
+ # --- end of setup (...) ---
diff --git a/roverlay/interface/root.py b/roverlay/interface/root.py
index d500582..a4d287c 100644
--- a/roverlay/interface/root.py
+++ b/roverlay/interface/root.py
@@ -8,6 +8,7 @@ import logging
import roverlay
import roverlay.errorqueue
+import roverlay.hook
import roverlay.interface.generic
@@ -28,24 +29,46 @@ class RootInterface ( roverlay.interface.generic.RoverlayInterface ):
# --- end of register_interface (...) ---
def __init__ ( self,
- config_file=None, config=None, additional_config=None
+ config_file=None, config=None, additional_config=None, is_installed=None
):
super ( RootInterface, self ).__init__()
self.parent = None
self.err_queue = roverlay.errorqueue.ErrorQueue()
- if config is not None:
+ if getattr ( self, 'config', None ):
+ pass
+ elif config is not None:
self.config = config
elif config_file is not None:
- self.config = roverlay.load_config_file (
- config_file, extraconf=additional_config
- )
+ if additional_config is None:
+ self.config = roverlay.load_config_file (
+ config_file, extraconf={ 'installed': False, }
+ )
+ else:
+ # modifies additional_config
+ additional_config.update ( { 'installed': False, } )
+
+ self.config = roverlay.load_config_file (
+ config_file, extraconf=additional_config
+ )
else:
raise Exception ( "config, config_file?" )
+
+ if is_installed is not None:
+ self.set_installed ( is_installed )
+ elif self.config.get ( "installed", None ) is None:
+ self.set_installed ( False )
+
self.logger = logging.getLogger ( self.__class__.__name__ )
+
+ roverlay.hook.setup()
# --- end of __init__ (...) ---
+ def set_installed ( self, status=True ):
+ self.config.merge_with ( { 'installed': bool ( status ), } )
+ # --- end of set_installed (...) ---
+
def spawn_interface ( self, name ):
if self.has_interface ( name ):
return self.get_interface ( name )
@@ -60,3 +83,7 @@ class RootInterface ( roverlay.interface.generic.RoverlayInterface ):
name, iface_cls ( parent_interface=self )
)
# --- end of spawn_interface (...) ---
+
+ def run_hook ( self, phase ):
+ return roverlay.hook.run ( phase, catch_failure=False )
+ # --- end of run_hook (...) ---
next reply other threads:[~2013-07-03 17:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-03 17:20 André Erdmann [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-07-23 7:51 [gentoo-commits] proj/R_overlay:master commit in: roverlay/interface/ André Erdmann
2013-07-19 18:00 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23 7:51 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-19 18:00 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-18 19:25 André Erdmann
2013-07-16 16:36 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-16 16:35 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-04 17:02 André Erdmann
2013-07-03 10:05 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-02 21:09 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1372870781.7dee38ce521eec08275ad6d6a259eaa6ed16602a.dywi@gentoo \
--to=dywi@mailerd.de \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox