# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Module contains constants shared across all other devserver modules."""

#### Google Storage locations and names. ####
# TODO (joyc) move the google storage filenames of artfacts here
CHANNELS = 'canary', 'dev', 'beta', 'stable'
GS_IMAGE_BUCKET = 'chromeos-image-archive'
GS_IMAGE_DIR = 'gs://%s' % GS_IMAGE_BUCKET
# TODO(ahassani): Remove MASTER once all buckets have moved to MAIN.
GS_LATEST_MASTER = '%(image_dir)s/%(board)s%(suffix)s/LATEST-master'
GS_LATEST_MAIN = '%(image_dir)s/%(board)s%(suffix)s/LATEST-main'
GS_LATEST_BASE_VERSION = (
    '%(image_dir)s/%(board)s%(suffix)s/LATEST-%(base_version)s')
IMAGE_DIR = '%(board)s%(suffix)s/%(version)s'

GS_RELEASES_DIR = 'gs://chromeos-releases'
GS_CHANNEL_DIR = GS_RELEASES_DIR + '/%(channel)s-channel/%(board)s/'

VERSION = r'[-0-9\.]+'
VERSION_RE = 'R%s' % VERSION

STAGED_BUILD_REGEX = '/static/(?P<build>.*-.*/%s)/.*' % VERSION_RE


#### Local storage locations and names. ####
AUTOTEST_DIR = 'autotest'
BASE_IMAGE_FILE = 'chromiumos_base_image.bin'
IMAGE_FILE = 'chromiumos_image.bin'
FACTORY_IMAGE_FILE = 'factory_test/chromiumos_factory_image.bin'
FACTORY_SHIM_IMAGE_FILE = 'factory_shim/factory_install_shim.bin'
RECOVERY_IMAGE_FILE = 'recovery_image.bin'
SIGNED_IMAGE_FILE = 'signed_image.bin'
TEST_IMAGE_FILE = 'chromiumos_test_image.bin'

#### Update files
CACHE_DIR = 'cache'
STATEFUL_FILE = 'stateful.tgz'
UPDATE_FILE = 'update.gz'
UPDATE_METADATA_FILE = 'update.gz.json'

#### Android files
ANDROID_BOOT_IMAGE_FILE = 'boot.img'
ANDROID_SYSTEM_IMAGE_FILE = 'system.img'
ANDROID_FASTBOOT = 'fastboot'
