application: blockly-demo
version: 20190215
runtime: python27
api_version: 1
threadsafe: no

handlers:
# Redirect obsolete URLs.
# Blockly files moved from /blockly to /static on 5 Dec 2012.
- url: /blockly/.*
  static_files: redirect.html
  upload: redirect.html
# Code, Maze and Turtle moved from demos on 29 Dec 2012.
- url: /static/demos/(maze|turtle)/.*
  static_files: redirect.html
  upload: redirect.html
# Apps was disbanded on 20 Nov 2014.
- url: /static/apps/.*
  static_files: redirect.html
  upload: redirect.html


# Storage API.
- url: /storage
  script: storage.py
  secure: always
- url: /storage\.js
  static_files: storage.js
  upload: storage\.js
  secure: always

# Blockly files.
- url: /static
  static_dir: static
  secure: always

# Closure library for uncompressed Blockly.
- url: /closure-library
  static_dir: closure-library
  secure: always

# Redirect for root directory.
- url: /
  script: index_redirect.py
  secure: always

# Favicon.
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico
  secure: always
  expiration: "30d"

# Apple icon.
- url: /apple-touch-icon\.png
  static_files: apple-touch-icon.png
  upload: apple-touch-icon\.png
  secure: always
  expiration: "30d"

# robot.txt
- url: /robots\.txt
  static_files: robots.txt
  upload: robots\.txt
  secure: always


skip_files:
# App Engine default patterns.
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
# Custom skip patterns.
- ^static/appengine/.*$
- ^static/demos/plane/soy/.+\.jar$
- ^static/demos/plane/template.soy$
- ^static/demos/plane/xlf/.*$
- ^static/i18n/.*$
- ^static/msg/json/.*$
- ^.+\.soy$
- ^closure-library/.*_test.html$
- ^closure-library/.*_test.js$
- ^closure-library/closure/bin/.*$
- ^closure-library/doc/.*$
- ^closure-library/scripts/.*$
