blob: f863dba9867d905e539e3099cdd4273cfa374810 [file] [log] [blame]
#!/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.
#
USERNAME=$1
if [ "${USERNAME}" == "" ]; then
echo "Please provide a SVN username."
echo -e "\nUsage:\n\t$0 <username>\n"
exit 1
fi
read -s -p "Password for SVN user ${USERNAME}: " PASSWORD
echo
SVN_CMD="svn --no-auth-cache --username=${USERNAME} --password=${PASSWORD}"
VERSION=$(cat pom.xml | grep -A1 '<artifactId>tinkerpop</artifactId>' | grep '<version>' | awk -F '>' '{print $2}' | awk -F '<' '{print $1}')
rm -rf target/svn
bin/process-docs.sh || exit 1
# generates javadoc and jsdoc
mvn process-resources -Djavadoc
mkdir -p target/svn
${SVN_CMD} co --depth immediates https://svn.apache.org/repos/asf/tinkerpop/site target/svn
pushd target/svn
${SVN_CMD} update "docs/${VERSION}"
${SVN_CMD} update "javadocs/${VERSION}"
${SVN_CMD} update "jsdocs/${VERSION}"
${SVN_CMD} update "dotnetdocs/${VERSION}"
mkdir -p "docs/${VERSION}"
mkdir -p "javadocs/${VERSION}/core"
mkdir -p "javadocs/${VERSION}/full"
mkdir -p "jsdocs/${VERSION}"
mkdir -p "dotnetdocs/${VERSION}"
mkdir -p ../jsdocs
rm -rf ../jsdocs/*
cp -R ../../gremlin-javascript/src/main/javascript/gremlin-javascript/doc/ ../jsdocs/
mkdir -p ../dotnetdocs
rm -rf ../dotnetdocs/*
cp -R ../../gremlin-dotnet/src/_site/ ../dotnetdocs/
diff -rq -I '^Last updated' docs/${VERSION}/ ../docs/htmlsingle/ | awk -f ../../bin/publish-docs.awk | sed 's/^\(.\) \//\1 /g' > ../publish-docs.docs
diff -rq -I 'Generated by javadoc' -I '^<meta name="date"' javadocs/${VERSION}/ ../site/apidocs/ | awk -f ../../bin/publish-docs.awk | sed 's/^\(.\) \//\1 /g' > ../publish-docs.javadocs
diff -rq -I 'Generated by jsdoc' -I '^<meta name="date"' jsdocs/${VERSION}/ ../jsdocs/doc/ | awk -f ../../bin/publish-docs.awk | sed 's/^\(.\) \//\1 /g' > ../publish-docs.jsdocs
diff -rq -I '^<meta name="generator"' dotnetdocs/${VERSION}/ ../dotnetdocs/_site/ | awk -f ../../bin/publish-docs.awk | sed 's/^\(.\) \//\1 /g' > ../publish-docs.dotnetdocs
# copy new / modified files
for file in $(cat ../publish-docs.docs | awk '/^[AU]/ {print $2}' | grep -v '.graffle$')
do
if [ -d "../docs/htmlsingle/${file}" ]; then
mkdir -p "docs/${VERSION}/${file}" && cp -r "../docs/htmlsingle/${file}"/* "$_"
else
mkdir -p "docs/${VERSION}/`dirname ${file}`" && cp "../docs/htmlsingle/${file}" "$_"
fi
done
for file in $(cat ../publish-docs.javadocs | awk '/^[AU]/ {print $2}')
do
if [ -d "../site/apidocs/${file}" ]; then
mkdir -p "javadocs/${VERSION}/${file}" && cp -r "../site/apidocs/${file}"/* "$_"
else
mkdir -p "javadocs/${VERSION}/`dirname ${file}`" && cp "../site/apidocs/${file}" "$_"
fi
done
for file in $(cat ../publish-docs.jsdocs | awk '/^[AU]/ {print $2}')
do
if [ -d "../jsdocs/doc/${file}" ]; then
mkdir -p "jsdocs/${VERSION}/${file}" && cp -r "../jsdocs/doc/${file}"/* "$_"
else
mkdir -p "jsdocs/${VERSION}/`dirname ${file}`" && cp "../jsdocs/doc/${file}" "$_"
fi
done
for file in $(cat ../publish-docs.dotnetdocs | awk '/^[AU]/ {print $2}')
do
if [ -d "../dotnetdocs/_site/${file}" ]; then
mkdir -p "dotnetdocs/${VERSION}/${file}" && cp -r "../dotnetdocs/_site/${file}"/* "$_"
else
mkdir -p "dotnetdocs/${VERSION}/`dirname ${file}`" && cp "../dotnetdocs/_site/${file}" "$_"
fi
done
pushd "docs/${VERSION}/"; cat ../../../publish-docs.docs | awk '/^A/ {print $2}' | grep -v '.graffle$' | xargs --no-run-if-empty svn add --parents; popd
pushd "javadocs/${VERSION}/"; cat ../../../publish-docs.javadocs | awk '/^A/ {print $2}' | xargs --no-run-if-empty svn add --parents; popd
pushd "jsdocs/${VERSION}/"; cat ../../../publish-docs.jsdocs | awk '/^A/ {print $2}' | xargs --no-run-if-empty svn add --parents; popd
pushd "dotnetdocs/${VERSION}/"; cat ../../../publish-docs.dotnetdocs | awk '/^A/ {print $2}' | xargs --no-run-if-empty svn add --parents; popd
# delete old files
pushd "docs/${VERSION}/"; cat ../../../publish-docs.docs | awk '/^D/ {print $2}' | xargs --no-run-if-empty svn delete; popd
pushd "javadocs/${VERSION}/"; cat ../../../publish-docs.javadocs | awk '/^D/ {print $2}' | xargs --no-run-if-empty svn delete; popd
pushd "jsdocs/${VERSION}/"; cat ../../../publish-docs.jsdocs | awk '/^D/ {print $2}' | xargs --no-run-if-empty svn delete; popd
pushd "dotnetdocs/${VERSION}/"; cat ../../../publish-docs.dotnetdocs | awk '/^D/ {print $2}' | xargs --no-run-if-empty svn delete; popd
CHANGES=$(cat ../publish-docs.*docs | grep -v '.graffle$' | wc -l)
if [ ${CHANGES} -gt 0 ]; then
${SVN_CMD} commit -m "Deploy docs for TinkerPop ${VERSION}"
fi
popd