Current File : //usr/share/lib/pkg/web/index.shtml
## -*- coding: utf-8 -*-
##
##
## Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
##
<%!
        import os.path
        import pkg.server.api as api
        import pkg.server.api_errors as api_errors

        CLIENT_API_VERSION = 12
%>\
<%page args="g_vars"/>\
<%
        base = g_vars["base"]
        http_depot = g_vars["http_depot"]
        config = api.ConfigInterface(CLIENT_API_VERSION, base)
        request = api.RequestInterface(CLIENT_API_VERSION, base)

        # XXX default language if one can't be automatically determined,
        # where to set this?
        dlang = "en"

        # First, get the list of desired languages from the request.
        rlangs = request.get_accepted_languages()

        # Second, check each language name (which should either be an ISO
        # 639(.1/.2) code or an l10n simple name) to see if a directory of
        # content exists for it.
        for rl in rlangs:
                if os.path.exists(os.path.join(config.web_root, rl)):
                        dlang = rl
                        break

        # Third, determine if we need to redirect the user to a particular
        # page.
        rpath = request.path_info.strip("/")
        pub = g_vars["pub"]
        if pub:
                # Ignore publisher component of path.
                rpath = rpath.replace(pub, "").strip("/")

        prefix = ""
        if rpath == "":
                # Because the redirect is relative if the original request
                # didn't end with a '/', special care has to be taken for
                # this particular case.
                if pub and not request.path_info.endswith("/"):
                        prefix = pub + "/"
                rpath = "index.shtml"
        if http_depot:
                prefix = http_depot

        # Finally, redirect the client to the content appropriate for their
        # language and region.
        raise api_errors.RedirectException("%s%s/%s" % (prefix, dlang, rpath))
%>\