1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import re 6import os 7import sys 8 9from app_yaml_helper import AppYamlHelper 10from third_party.json_schema_compiler.memoize import memoize 11 12 13@memoize 14def GetAppVersion(): 15 return GetAppVersionNonMemoized() 16 17 18# This one is for running from tests, which memoization messes up. 19def GetAppVersionNonMemoized(): 20 if 'CURRENT_VERSION_ID' in os.environ: 21 # The version ID looks like 2-0-25.36712548 or 2-0-25.23/223; we only 22 # want the 2-0-25. 23 return re.compile('[./]').split(os.environ['CURRENT_VERSION_ID'])[0] 24 # Not running on appengine, get it from the app.yaml file ourselves. 25 app_yaml_path = os.path.join(os.path.split(__file__)[0], 'app.yaml') 26 with open(app_yaml_path, 'r') as app_yaml: 27 return AppYamlHelper.ExtractVersion(app_yaml.read()) 28 29 30def _IsServerSoftware(name): 31 return os.environ.get('SERVER_SOFTWARE', '').find(name) == 0 32 33 34def IsDevServer(): 35 return _IsServerSoftware('Development') 36 37 38def IsReleaseServer(): 39 return _IsServerSoftware('Google App Engine') 40 41 42def IsPreviewServer(): 43 return sys.argv and os.path.basename(sys.argv[0]) == 'preview.py' 44