diff options
| -rw-r--r-- | indra/lib/python/indra/util/llmanifest.py | 5 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 22 | 
2 files changed, 21 insertions, 6 deletions
| diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py index a73fc6c293..814e1c9f95 100644 --- a/indra/lib/python/indra/util/llmanifest.py +++ b/indra/lib/python/indra/util/llmanifest.py @@ -128,8 +128,11 @@ ARGUMENTS=[          value for this parameter.""",           default=""),      dict(name='channel', -         description="""The channel to use for updates.""", +         description="""The channel to use for updates, packaging, settings name, etc.""",           default=get_channel), +    dict(name='login_channel', +         description="""The channel to use for login handshake/updates only.""", +         default=None),      dict(name='installer_name',           description=""" The name of the file that the installer should be          packaged up into. Only used on Linux at the moment.""", diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 40acde28a1..a030a64401 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -93,8 +93,16 @@ class ViewerManifest(LLManifest):                  self.path("lsl_guide.html")                  self.path("gpu_table.txt") +        def login_channel(self): +                """Channel reported for login and upgrade purposes ONLY; used for A/B testing""" +                # NOTE: Do not return the normal channel if login_channel is not specified, as +                # some code may branch depending on whether or not this is present +                return self.args['login_channel'] + +        def channel(self): +                return self.args['channel']          def channel_unique(self): -                return self.args['channel'].replace("Second Life", "").strip() +                return self.channel().replace("Second Life", "").strip()          def channel_oneword(self):                  return "".join(self.channel_unique().split())          def channel_lowerword(self): @@ -112,7 +120,11 @@ class ViewerManifest(LLManifest):                  if not self.default_channel():                          # some channel on some grid -                        channel_flags = '-settings settings_%s.xml -channel "%s"' % (self.channel_lowerword(), self.args['channel']) +                        channel_flags = '-settings settings_%s.xml -channel "%s"' % (self.channel_lowerword(), self.channel()) +                elif self.login_channel(): +                        # Report a special channel during login, but use default channel elsewhere +                        channel_flags = '-channel "%s"' % (self.login_channel()) +                                          return " ".join((channel_flags, grid_flags)).strip()          def login_url(self): @@ -144,7 +156,7 @@ class WindowsManifest(ViewerManifest):                          else:                                  return "SecondLifePreview.exe"                  else: -                        return ''.join(self.args['channel'].split()) + '.exe' +                        return ''.join(self.channel().split()) + '.exe'          def construct(self): @@ -273,7 +285,7 @@ class WindowsManifest(ViewerManifest):                          'grid_caps':self.args['grid'].upper(),                          # escape quotes becase NSIS doesn't handle them well                          'flags':self.flags_list().replace('"', '$\\"'), -                        'channel':self.args['channel'], +                        'channel':self.channel(),                          'channel_oneword':self.channel_oneword(),                          'channel_unique':self.channel_unique(),                          } @@ -395,7 +407,7 @@ class DarwinManifest(ViewerManifest):          def package_finish(self):                  channel_standin = 'Second Life'  # hah, our default channel is not usable on its own                  if not self.default_channel(): -                        channel_standin = self.args['channel'] +                        channel_standin = self.channel()                  imagename="SecondLife_" + '_'.join(self.args['version'])                  if self.default_channel(): | 
