author | Todd Larsen <tlarsen@google.com> |
Tue, 16 Sep 2008 18:02:09 +0000 | |
changeset 160 | 269462f166ef |
parent 159 | 451f39c0e1aa |
child 175 | 9ed9bf2814ef |
permissions | -rwxr-xr-x |
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
1 |
#!/bin/bash |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
2 |
|
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
3 |
# Script to create a "release" subdirectory. This is a subdirectory |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
4 |
# containing a bunch of symlinks, from which the app can be updated. |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
5 |
# The main reason for this is to import Django from a zipfile, which |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
6 |
# saves dramatically in upload time: statting and computing the SHA1 |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
7 |
# for 1000s of files is slow. Even if most of those files don't |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
8 |
# actually need to be uploaded, they still add to the work done for |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
9 |
# each update. |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
10 |
|
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
11 |
DEFAULT_APP_RELEASE=../release |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
12 |
DEFAULT_APP_FOLDER="../app" |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
13 |
DEFAULT_APP_FILES="app.yaml index.yaml __init__.py main.py settings.py urls.py" |
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
14 |
DEFAULT_APP_DIRS="soc ghop gsoc feedparser" |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
15 |
DEFAULT_ZIP_FILES="django.zip tiny_mce.zip" |
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
16 |
|
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
17 |
APP_RELEASE=${APP_RELEASE:-"${DEFAULT_APP_RELEASE}"} |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
18 |
APP_FOLDER=${APP_FOLDER:-"${DEFAULT_APP_FOLDER}"} |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
19 |
APP_FILES=${APP_FILES:-"${DEFAULT_APP_FILES}"} |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
20 |
APP_DIRS=${APP_DIRS:-"${DEFAULT_APP_DIRS}"} |
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
21 |
ZIP_FILES=${ZIP_FILES:-"${DEFAULT_ZIP_FILES}"} |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
22 |
|
150
715b07485c48
Changed ZIPFILE variable to DJANGO_ZIPFILE in make_release.sh script and added 'cd $APP_FOLDER' before we zip django.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
144
diff
changeset
|
23 |
cd $APP_FOLDER |
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
24 |
# Remove old zip files |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
25 |
rm -rf $ZIP_FILES |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
26 |
|
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
27 |
# Create new django.zip file. |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
28 |
# We prune: |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
29 |
# - .svn subdirectories for obvious reasons. |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
30 |
# - contrib/gis/ and related files because it's huge and unneeded. |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
31 |
# - *.po and *.mo files because they are bulky and unneeded. |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
32 |
# - *.pyc and *.pyo because they aren't used by App Engine anyway. |
150
715b07485c48
Changed ZIPFILE variable to DJANGO_ZIPFILE in make_release.sh script and added 'cd $APP_FOLDER' before we zip django.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
144
diff
changeset
|
33 |
|
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
34 |
zip -q django.zip `find django \ |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
35 |
-name .svn -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
36 |
-name gis -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
37 |
-name admin -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
38 |
-name localflavor -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
39 |
-name mysql -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
40 |
-name mysql_old -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
41 |
-name oracle -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
42 |
-name postgresql-prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
43 |
-name postgresql_psycopg2 -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
44 |
-name sqlite3 -prune -o \ |
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
45 |
-name test -prune -o \ |
150
715b07485c48
Changed ZIPFILE variable to DJANGO_ZIPFILE in make_release.sh script and added 'cd $APP_FOLDER' before we zip django.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
144
diff
changeset
|
46 |
-type f ! -name \*.py[co] ! -name *.[pm]o -print` |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
47 |
|
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
48 |
# Create new tiny_mce.zip file. |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
49 |
# We prune: |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
50 |
# - .svn subdirectories for obvious reasons. |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
51 |
|
160
269462f166ef
Explain why pushd and popd are needed when making tiny_mce.zip.
Todd Larsen <tlarsen@google.com>
parents:
159
diff
changeset
|
52 |
# zipserve requires tiny_mce/* to be in root of zip file |
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
53 |
pushd tiny_mce > /dev/null |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
54 |
zip -q ../tiny_mce.zip `find . \ |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
55 |
-name .svn -prune -o \ |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
56 |
-type f -print` |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
57 |
popd > /dev/null |
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
58 |
|
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
59 |
# Remove old $APP_RELEASE directory. |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
60 |
rm -rf $APP_RELEASE |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
61 |
|
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
62 |
# Create new $APP_RELEASE directory. |
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
63 |
mkdir $APP_RELEASE |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
64 |
|
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
65 |
# Create symbolic links. |
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
66 |
for x in $APP_FILES $APP_DIRS $ZIP_FILES |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
67 |
do |
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
68 |
ln -s $APP_FOLDER/$x $APP_RELEASE/$x |
144
53d8b8064019
Release shell script and associated changes. Set svn:ignore property on /app/django.zip file and /release folder.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff
changeset
|
69 |
done |
158
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
70 |
|
2d5a7c18f9ea
Updated make_release.sh docs and added way for person invoking the script to override script variables such as RELEASE using something like "RELEASE=../testing_release ./make_release.sh".
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
157
diff
changeset
|
71 |
echo "Release created in $APP_RELEASE." |
159
451f39c0e1aa
Use zip to compress tiny_mce, and use zipserve to serve it in Google App
Todd Larsen <tlarsen@google.com>
parents:
158
diff
changeset
|
72 |