blob: fa984f389cdaeae689c92c2c769f2f6289321a1e [file]
#!/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
#
# https://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
function usage {
echo "Usage: $0 {lint|test|dist|clean|interop-data-generate|interop-data-test}"
exit 1
}
if [ $# -eq 0 ]
then
usage
fi
for target in "$@"
do
function do_clean(){
[ ! -f Makefile ] || make clean
rm -f Avro-*.tar.gz META.yml Makefile.old
rm -rf lang/perl/inc/
}
function do_lint(){
local failures=0
for i in $(find lib t xt -name '*.p[lm]' -or -name '*.t'); do
if ! perlcritic --verbose 1 ${i}; then
((failures=failures+1))
fi
done
if [ ${failures} -gt 0 ]; then
return 1
fi
}
case "$target" in
lint)
do_lint
;;
test)
perl ./Makefile.PL && make test
;;
dist)
# The dist target is used to create a distribution tarball that can be uploaded to CPAN,
# so we need to add VERSION.txt to the tarball to make it available to Makefile.PL
cp -vf ../../share/VERSION.txt ./ && \
perl ./Makefile.PL && make dist && \
rm -vf ./VERSION.txt
;;
clean)
do_clean
;;
interop-data-generate)
perl -Ilib share/interop-data-generate
;;
interop-data-test)
prove -Ilib xt/interop.t
;;
*)
usage
esac
done
exit 0