#!/bin/bash # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e # exit on error cd `dirname "$0"` # connect to root VERSION=`cat share/VERSION.txt` function usage { echo "Usage: $0 {test|dist|sign|clean}" exit 1 } if [ $# -eq 0 ] then usage fi set -x # echo commands for target in "$@" do case "$target" in test) # run lang-specific tests (cd lang/java; ant test) (cd lang/py; ant test) (cd lang/c; ./build.sh test) (cd lang/c++; ./build.sh test) (cd lang/ruby; rake test) # create interop test data (cd lang/java; ant interop-data-generate) (cd lang/py; ant interop-data-generate) (cd lang/c; ./build.sh interop-data-generate) #(cd lang/c++; make interop-data-generate) (cd lang/ruby; rake generate_interop) # run interop data tests (cd lang/java; ant interop-data-test) (cd lang/py; ant interop-data-test) (cd lang/c; ./build.sh interop-data-test) #(cd lang/c++; make interop-data-test) (cd lang/ruby; rake interop) # run interop rpc tests /bin/bash share/test/interop/bin/test_rpc_interop.sh ;; dist) # build source tarball mkdir -p build rm -rf build/avro-src-$VERSION svn export --force . build/avro-src-$VERSION (cd lang/java; ant rat) mkdir -p dist (cd build; tar czf ../dist/avro-src-$VERSION.tar.gz avro-src-$VERSION) # build lang-specific artifacts (cd lang/java; ant dist) (cd lang/py; ant dist) (cd lang/c; ./build.sh dist) (cd lang/c++; ./build.sh dist) (cd lang/ruby; rake dist) # build docs (cd doc; ant) (cd build; tar czf ../dist/avro-doc-$VERSION.tar.gz avro-doc-$VERSION) cp DIST_README.txt dist/README.txt ;; sign) set +x echo -n "Enter password: " stty -echo read password stty echo for f in $(find dist -type f \ \! -name '*.sha1' \! -name '*.asc' \! -name '*.txt' ); do md5sum $f > $f.md5 sha1sum $f > $f.sha1 gpg --passphrase $password --armor --output $f.asc --detach-sig $f done set -x ;; clean) rm -rf build dist (cd doc; ant clean) (cd lang/java; ant clean) (cd lang/py; ant clean) (cd lang/c; ./build.sh clean) (cd lang/c++; ./build.sh clean) (cd lang/ruby; rake clean) ;; *) usage ;; esac done exit 0