# Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# App Engine configuration, see:
# https://developers.google.com/appengine/docs/python/config/appconfig

# The version number should be something like rSVN_REVISION.
version: remember to edit app.yaml before deploying
# This version name is used to create a new host, for example,
# http://r31824.try-dart-lang.appspot.com/, which can be tested before going
# live at http://try.dartlang.org/.  This is controlled from
# https://appengine.google.com/deployment?&app_id=s~try-dart-lang

application: try-dart-lang
runtime: python27
api_version: 1
threadsafe: yes

# Set "Cache-Control" and "Expires" HTTP headers to only cache for one second.
# We do this because we frequently push new changes and rely on AppCache for
# caching.  Once files are installed in AppCache, the site launches
# immediately.
#
# Problem: PageSpeed Insights doesn't realize that we use AppCache and keeps
# nagging about caching.
# Solution: Ignore its advice about "Leverage browser caching".
default_expiration: 1s

handlers:
- url: /packages/analyzer
  static_dir: packages/analyzer
  secure: always

- url: /packages/args
  static_dir: packages/args
  secure: always

- url: /packages/collection
  static_dir: packages/collection
  secure: always

- url: /packages/crypto
  static_dir: packages/crypto
  secure: always

- url: /packages/http
  static_dir: packages/http
  secure: always

- url: /packages/http_parser
  static_dir: packages/http_parser
  secure: always

- url: /packages/intl
  static_dir: packages/intl
  secure: always

- url: /packages/logging
  static_dir: packages/logging
  secure: always

- url: /packages/matcher
  static_dir: packages/matcher
  secure: always

- url: /packages/math
  static_dir: packages/math
  secure: always

- url: /packages/path
  static_dir: packages/path
  secure: always

- url: /packages/serialization
  static_dir: packages/serialization
  secure: always

- url: /packages/stack_trace
  static_dir: packages/stack_trace
  secure: always

- url: /packages/string_scanner
  static_dir: packages/string_scanner
  secure: always

- url: /packages/unittest
  static_dir: packages/unittest
  secure: always

- url: /packages/yaml
  static_dir: packages/yaml
  secure: always

- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico
  secure: always

- url: /
  static_files: index.html
  upload: index.html
  secure: always

- url: /ssl.appcache
  static_files: ssl.appcache
  upload: ssl.appcache
  secure: always

- url: /(.*\.(html|js|png|css|dart|json))
  static_files: \1
  upload: (.*\.(html|js|png|css|dart|json))
  secure: always

- url: /css/fonts/fontawesome-webfont.woff
  static_files: fontawesome-webfont.woff
  upload: fontawesome-webfont.woff
  secure: always

libraries:
- name: webapp2
  version: "2.5.2"
