Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
authorPawel Solyga <Pawel.Solyga@gmail.com>
Sun, 14 Sep 2008 20:32:32 +0000
changeset 144 53d8b8064019
parent 143 b419121f7b3e
child 145 9626a42a225b
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder. Patch by: Pawel Solyga, Augie Fackler Review by: Todd Larsen, review-after-commit Review issue: 363 Review URL: http://codereviews.googleopensourceprograms.com/363
app/main.py
scripts/make_release.sh
--- a/app/main.py	Sun Sep 14 00:23:49 2008 +0000
+++ b/app/main.py	Sun Sep 14 20:32:32 2008 +0000
@@ -35,6 +35,8 @@
 # from it. This lets us replace the built-in Django
 sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
 
+sys.path.insert(0, os.path.abspath('django.zip'))
+
 # Force Django to reload its settings.
 from django.conf import settings
 settings._target = None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/make_release.sh	Sun Sep 14 20:32:32 2008 +0000
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Script to create a "release" subdirectory.  This is a subdirectory
+# containing a bunch of symlinks, from which the app can be updated.
+# The main reason for this is to import Django from a zipfile, which
+# saves dramatically in upload time: statting and computing the SHA1
+# for 1000s of files is slow.  Even if most of those files don't
+# actually need to be uploaded, they still add to the work done for
+# each update.
+
+ZIPFILE=django.zip
+RELEASE=../release
+APP_FOLDER="../app"
+APP_FILES="app.yaml index.yaml __init__.py main.py settings.py urls.py"
+APP_DIRS="soc ghop gsoc"
+
+# Remove old $ZIPFILE file.
+rm -rf $ZIPFILE
+
+# Create new $ZIPFILE file.
+# We prune:
+# - .svn subdirectories for obvious reasons.
+# - contrib/gis/ and related files because it's huge and unneeded.
+# - *.po and *.mo files because they are bulky and unneeded.
+# - *.pyc and *.pyo because they aren't used by App Engine anyway.
+DJANGO_DIR=$APP_FOLDER"/django"
+zip -q $APP_FOLDER/$ZIPFILE `find $DJANGO_DIR \
+    -name .svn -prune -o \
+    -name gis -prune -o \
+    -name admin -prune -o \
+    -name localflavor -prune -o \
+    -name mysql -prune -o \
+    -name mysql_old -prune -o \
+    -name oracle -prune -o \
+    -name postgresql-prune -o \
+    -name postgresql_psycopg2 -prune -o \
+    -name sqlite3 -prune -o \
+    -name test -prune -o \
+    -type f ! -name \*.py[co] ! -name \*.[pm]o -print`
+
+# Remove old $RELEASE directory.
+rm -rf $RELEASE
+
+# Create new $RELEASE directory.
+mkdir $RELEASE
+
+# Create symbolic links.
+for x in $APP_FILES $APP_DIRS $ZIPFILE
+do
+    ln -s $APP_FOLDER/$x $RELEASE/$x
+done