On Tue, 22 Jul 2014, Jiri Srain wrote:
There is a single variable which stores the mode. All the rest are just wrappers comparing this variable to a particular value (or values). Therefore you definitely cannot have 2^7 modes. (*)
The confusion here is IMO the result of conversion from YCP; if the code used ruby naming conventions, Mode.update would definitely be called Mode.update?
# we're doing an update def update mode == "update" || mode == "autoupgrade" end
(*) OK, there is one variable for general mode, one variable for testing mode (which should IMO be squeezed out as a next step after switch to Ruby) and one variable for UI mode - but still not 3^7 different modes :-)
Ok, looking at the actual Mode implementation sheds some light on this. I'd prefer not having to do this for every class, though. :-/ So there are 8 generic 'modes' and some test functions combining these. Roughly along the lines I guessed in my post. Some issues: 1) the active mode is not logged; at least not during the usual install workflow because Initialize() doesn't use SetMode() to set the mode; SetTest() and SetUI() don't even bother 2) it's really anyone's guess why Mode.update combines update and autoupgrade while Mode.autoinst does not combine autoinstallation and autoupgrade 3) there actually 3 mode categories: workflow modes, test modes, and ui modes... Steffen -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org To contact the owner, e-mail: yast-devel+owner@opensuse.org