| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | #! /bin/sh# This script takes the result of "make dist" and:# 1) Unpacks it.# 2) Ensures all contents are user-writable.  Some version control systems#    keep code read-only until you explicitly ask to edit it, and the normal#    "make dist" process does not correct for this, so the result is that#    the entire dist is still marked read-only when unpacked, which is#    annoying.  So, we fix it.# 3) Convert MSVC project files to MSVC 2005, so that anyone who has version#    2005 *or* 2008 can open them.  (In version control, we keep things in#    MSVC 2008 format since that's what we use in development.)# 4) Uses the result to create .tar.gz, .tar.bz2, and .zip versions and#    deposites them in the "dist" directory.  In the .zip version, all#    non-testdata .txt files are converted to Windows-style line endings.# 5) Cleans up after itself.if [ "$1" == "" ]; then  echo "USAGE:  $0 DISTFILE" >&2  exit 1fiif [ ! -e $1 ]; then  echo $1": File not found." >&2  exit 1fiset -exLANGUAGES="cpp csharp java javanano js objectivec python ruby"BASENAME=`basename $1 .tar.gz`VERSION=${BASENAME:9}# Create a directory called "dist", copy the tarball there and unpack it.mkdir distcp $1 distcd disttar zxvf $BASENAME.tar.gzrm $BASENAME.tar.gz# Set the entire contents to be user-writable.chmod -R u+w $BASENAMEcd $BASENAMEfor LANG in $LANGUAGES; do  # Build the dist again in .tar.gz  ./configure DIST_LANG=$LANG  make dist-gzip  mv $BASENAME.tar.gz ../protobuf-$LANG-$VERSION.tar.gzdone# Convert all text files to use DOS-style line endings, then build a .zip# distribution.todos *.txt */*.txtfor LANG in $LANGUAGES; do  # Build the dist again in .zip  ./configure DIST_LANG=$LANG  make dist-zip  mv $BASENAME.zip ../protobuf-$LANG-$VERSION.zipdonecd ..rm -rf $BASENAME
 |