diff --git a/README.adoc b/README.adoc
new file mode 100644
index 00000000..c0a14e47
--- /dev/null
+++ b/README.adoc
@@ -0,0 +1,202 @@
+// Do not edit this file (e.g. go instead to src/main/asciidoc)
+
+:jdkversion: 1.8
+:org: marcingrzejszczak
+:repo: releaser
+
+image::https://circleci.com/gh/{org}/{repo}/tree/1.1.x.svg?style=svg["CircleCI", link="https://circleci.com/gh/{org}/{repo}/tree/1.1.x"]
+image::https://codecov.io/gh/{org}/{repo}/branch/1.1.x/graph/badge.svg["codecov", link="https://codecov.io/gh/{org}/{repo}"]
+image::https://badges.gitter.im/{org}/{repo}.svg[Gitter, link="https://gitter.im/{org}/{repo}?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
+
+:github-tag: master
+:org: marcingrzejszczak
+:repo: releaser
+:github-repo: {org}/{repo}
+:github-raw: http://raw.github.com/{github-repo}/{github-tag}
+:github-code: http://github.com/{github-repo}/tree/{github-tag}
+:toc: left
+:toclevels: 8
+:nofooter:
+
+Spring Cloud Releaser
+====================
+
+This project can be used to
+
+- update all versions in your Spring Cloud Project according to the Spring Cloud Release setup
+
+== How to run it
+
+Currently we only support running the releaser to update the poms from Java
+
+[source,bash]
+----
+git clone https://github.com/marcingrzejszczak/releaser
+cd releaser
+./mvnw clean package
+----
+
+and then go to your project (e.g. Spring Cloud Sleuth)
+
+[source,bash]
+----
+git clone https://github.com/spring-cloud/spring-cloud-sleuth
+cd spring-cloud-sleuth
+java -jar ~/path/to/cloned/releaser/releaser-spring/target/releaser-spring-0.0.1.BUILD-SNAPSHOT.jar
+----
+
+You'll be asked to press `Enter` to continue (to check whether you're running it from a proper path).
+
+== Future plans
+
+In the future it can also:
+
+- commit the changed values
+- perform a release
+
+Other plans:
+
+- add a Maven plugin to perform the work from Maven
+
+== Building
+
+:jdkversion: 1.7
+
+=== Basic Compile and Test
+
+To build the source you will need to install JDK {jdkversion}.
+
+Spring Cloud uses Maven for most build-related activities, and you
+should be able to get off the ground quite quickly by cloning the
+project you are interested in and typing
+
+----
+$ ./mvnw install
+----
+
+NOTE: You can also install Maven (>=3.3.3) yourself and run the `mvn` command
+in place of `./mvnw` in the examples below. If you do that you also
+might need to add `-P spring` if your local Maven settings do not
+contain repository declarations for spring pre-release artifacts.
+
+NOTE: Be aware that you might need to increase the amount of memory
+available to Maven by setting a `MAVEN_OPTS` environment variable with
+a value like `-Xmx512m -XX:MaxPermSize=128m`. We try to cover this in
+the `.mvn` configuration, so if you find you have to do it to make a
+build succeed, please raise a ticket to get the settings added to
+source control.
+
+For hints on how to build the project look in `.travis.yml` if there
+is one. There should be a "script" and maybe "install" command. Also
+look at the "services" section to see if any services need to be
+running locally (e.g. mongo or rabbit). Ignore the git-related bits
+that you might find in "before_install" since they're related to setting git
+credentials and you already have those.
+
+The projects that require middleware generally include a
+`docker-compose.yml`, so consider using
+http://compose.docker.io/[Docker Compose] to run the middeware servers
+in Docker containers. See the README in the
+https://github.com/spring-cloud-samples/scripts[scripts demo
+repository] for specific instructions about the common cases of mongo,
+rabbit and redis.
+
+NOTE: If all else fails, build with the command from `.travis.yml` (usually
+`./mvnw install`).
+
+=== Documentation
+
+The spring-cloud-build module has a "docs" profile, and if you switch
+that on it will try to build asciidoc sources from
+`src/main/asciidoc`. As part of that process it will look for a
+`README.adoc` and process it by loading all the includes, but not
+parsing or rendering it, just copying it to `${main.basedir}`
+(defaults to `${basedir}`, i.e. the root of the project). If there are
+any changes in the README it will then show up after a Maven build as
+a modified file in the correct place. Just commit it and push the change.
+
+=== Working with the code
+If you don't have an IDE preference we would recommend that you use
+http://www.springsource.com/developer/sts[Spring Tools Suite] or
+http://eclipse.org[Eclipse] when working with the code. We use the
+http://eclipse.org/m2e/[m2eclipse] eclipse plugin for maven support. Other IDEs and tools
+should also work without issue as long as they use Maven 3.3.3 or better.
+
+==== Importing into eclipse with m2eclipse
+We recommend the http://eclipse.org/m2e/[m2eclipse] eclipse plugin when working with
+eclipse. If you don't already have m2eclipse installed it is available from the "eclipse
+marketplace".
+
+NOTE: Older versions of m2e do not support Maven 3.3, so once the
+projects are imported into Eclipse you will also need to tell
+m2eclipse to use the right profile for the projects. If you
+see many different errors related to the POMs in the projects, check
+that you have an up to date installation. If you can't upgrade m2e,
+add the "spring" profile to your `settings.xml`. Alternatively you can
+copy the repository settings from the "spring" profile of the parent
+pom into your `settings.xml`.
+
+==== Importing into eclipse without m2eclipse
+If you prefer not to use m2eclipse you can generate eclipse project metadata using the
+following command:
+
+[indent=0]
+----
+ $ ./mvnw eclipse:eclipse
+----
+
+The generated eclipse projects can be imported by selecting `import existing projects`
+from the `file` menu.
+
+
+IMPORTANT: There are 2 different versions of language level used in Spring Cloud Sleuth. Java 1.7 is used for main sources and
+Java 1.8 is used for tests. When importing your project to an IDE please activate the `ide` Maven profile to turn on
+Java 1.8 for both main and test sources. Of course remember that you MUST NOT use Java 1.8 features in the main sources. If you do
+so your app will break during the Maven build.
+
+== Contributing
+
+Spring Cloud is released under the non-restrictive Apache 2.0 license,
+and follows a very standard Github development process, using Github
+tracker for issues and merging pull requests into master. If you want
+to contribute even something trivial please do not hesitate, but
+follow the guidelines below.
+
+=== Sign the Contributor License Agreement
+Before we accept a non-trivial patch or pull request we will need you to sign the
+https://cla.pivotal.io/sign/spring[Contributor License Agreement].
+Signing the contributor's agreement does not grant anyone commit rights to the main
+repository, but it does mean that we can accept your contributions, and you will get an
+author credit if we do. Active contributors might be asked to join the core team, and
+given the ability to merge pull requests.
+
+=== Code of Conduct
+This project adheres to the Contributor Covenant https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[code of
+conduct]. By participating, you are expected to uphold this code. Please report
+unacceptable behavior to spring-code-of-conduct@pivotal.io.
+
+=== Code Conventions and Housekeeping
+None of these is essential for a pull request, but they will all help. They can also be
+added after the original pull request but before a merge.
+
+* Use the Spring Framework code format conventions. If you use Eclipse
+ you can import formatter settings using the
+ `eclipse-code-formatter.xml` file from the
+ https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring
+ Cloud Build] project. If using IntelliJ, you can use the
+ http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
+ Plugin] to import the same file.
+* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
+ `@author` tag identifying you, and preferably at least a paragraph on what the class is
+ for.
+* Add the ASF license header comment to all new `.java` files (copy from existing files
+ in the project)
+* Add yourself as an `@author` to the .java files that you modify substantially (more
+ than cosmetic changes).
+* Add some Javadocs and, if you change the namespace, some XSD doc elements.
+* A few unit tests would help a lot as well -- someone has to do it.
+* If no-one else is using your branch, please rebase it against the current master (or
+ other target branch in the main project).
+* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
+ if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
+ message (where XXXX is the issue number).
\ No newline at end of file
diff --git a/docs/.DS_Store b/docs/.DS_Store
new file mode 100644
index 00000000..dd9c8cfa
Binary files /dev/null and b/docs/.DS_Store differ
diff --git a/docs/pom.xml b/docs/pom.xml
new file mode 100644
index 00000000..09c6e27e
--- /dev/null
+++ b/docs/pom.xml
@@ -0,0 +1,41 @@
+
+
+ 4.0.0
+
+ org.springframework.cloud
+ releaser-parent
+ 0.0.1.BUILD-SNAPSHOT
+
+ releaser-docs
+ pom
+
+ spring-cloud-releaser
+ ${basedir}/..
+
+
+
+ docs
+
+
+
+ org.asciidoctor
+ asciidoctor-maven-plugin
+ 1.5.3
+ false
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ false
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ false
+
+
+
+
+
+
diff --git a/docs/src/.DS_Store b/docs/src/.DS_Store
new file mode 100644
index 00000000..402a3c65
Binary files /dev/null and b/docs/src/.DS_Store differ
diff --git a/docs/src/main/.DS_Store b/docs/src/main/.DS_Store
new file mode 100644
index 00000000..e6660dfb
Binary files /dev/null and b/docs/src/main/.DS_Store differ
diff --git a/docs/src/main/asciidoc/.DS_Store b/docs/src/main/asciidoc/.DS_Store
new file mode 100644
index 00000000..93a9d460
Binary files /dev/null and b/docs/src/main/asciidoc/.DS_Store differ
diff --git a/docs/src/main/asciidoc/README.adoc b/docs/src/main/asciidoc/README.adoc
new file mode 100644
index 00000000..d92e64a8
--- /dev/null
+++ b/docs/src/main/asciidoc/README.adoc
@@ -0,0 +1,22 @@
+:jdkversion: 1.8
+:org: marcingrzejszczak
+:repo: releaser
+
+image::https://circleci.com/gh/{org}/{repo}/tree/1.1.x.svg?style=svg["CircleCI", link="https://circleci.com/gh/{org}/{repo}/tree/1.1.x"]
+image::https://codecov.io/gh/{org}/{repo}/branch/1.1.x/graph/badge.svg["codecov", link="https://codecov.io/gh/{org}/{repo}"]
+image::https://badges.gitter.im/{org}/{repo}.svg[Gitter, link="https://gitter.im/{org}/{repo}?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
+
+include::spring-cloud-releaser.adoc[]
+
+== Building
+
+include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/building.adoc[]
+
+IMPORTANT: There are 2 different versions of language level used in Spring Cloud Sleuth. Java 1.7 is used for main sources and
+Java 1.8 is used for tests. When importing your project to an IDE please activate the `ide` Maven profile to turn on
+Java 1.8 for both main and test sources. Of course remember that you MUST NOT use Java 1.8 features in the main sources. If you do
+so your app will break during the Maven build.
+
+== Contributing
+
+include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing.adoc[]
diff --git a/docs/src/main/asciidoc/ghpages.sh b/docs/src/main/asciidoc/ghpages.sh
new file mode 100755
index 00000000..57c5da3a
--- /dev/null
+++ b/docs/src/main/asciidoc/ghpages.sh
@@ -0,0 +1,330 @@
+#!/bin/bash -x
+
+set -e
+
+# Set default props like MAVEN_PATH, ROOT_FOLDER etc.
+function set_default_props() {
+ # The script should be executed from the root folder
+ ROOT_FOLDER=`pwd`
+ echo "Current folder is ${ROOT_FOLDER}"
+
+ if [[ ! -e "${ROOT_FOLDER}/.git" ]]; then
+ echo "You're not in the root folder of the project!"
+ exit 1
+ fi
+
+ # Prop that will let commit the changes
+ COMMIT_CHANGES="no"
+ MAVEN_PATH=${MAVEN_PATH:-}
+ echo "Path to Maven is [${MAVEN_PATH}]"
+ REPO_NAME=${PWD##*/}
+ echo "Repo name is [${REPO_NAME}]"
+ SPRING_CLOUD_STATIC_REPO=${SPRING_CLOUD_STATIC_REPO:-git@github.com:spring-cloud/spring-cloud-static.git}
+ echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO}"
+}
+
+# Check if gh-pages exists and docs have been built
+function check_if_anything_to_sync() {
+ git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'`
+
+ if ! (git remote set-branches --add origin gh-pages && git fetch -q); then
+ echo "No gh-pages, so not syncing"
+ exit 0
+ fi
+
+ if ! [ -d docs/target/generated-docs ] && ! [ "${BUILD}" == "yes" ]; then
+ echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
+ exit 0
+ fi
+}
+
+function retrieve_current_branch() {
+ # Code getting the name of the current branch. For master we want to publish as we did until now
+ # http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch
+ # If there is a branch already passed will reuse it - otherwise will try to find it
+ CURRENT_BRANCH=${BRANCH}
+ if [[ -z "${CURRENT_BRANCH}" ]] ; then
+ CURRENT_BRANCH=$(git symbolic-ref -q HEAD)
+ CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/}
+ CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD}
+ fi
+ echo "Current branch is [${CURRENT_BRANCH}]"
+ git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script"
+}
+
+# Switches to the provided value of the release version. We always prefix it with `v`
+function switch_to_tag() {
+ git checkout v${VERSION}
+}
+
+# Build the docs if switch is on
+function build_docs_if_applicable() {
+ if [[ "${BUILD}" == "yes" ]] ; then
+ ./mvnw clean install -P docs -pl docs -DskipTests
+ fi
+}
+
+# Get the name of the `docs.main` property
+# Get whitelisted branches - assumes that a `docs` module is available under `docs` profile
+function retrieve_doc_properties() {
+ MAIN_ADOC_VALUE=$("${MAVEN_PATH}"mvn -q \
+ -Dexec.executable="echo" \
+ -Dexec.args='${docs.main}' \
+ --non-recursive \
+ org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
+ echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]"
+
+
+ WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"}
+ WHITELISTED_BRANCHES_VALUE=$("${MAVEN_PATH}"mvn -q \
+ -Dexec.executable="echo" \
+ -Dexec.args="\${${WHITELIST_PROPERTY}}" \
+ org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \
+ -P docs \
+ -pl docs)
+ echo "Extracted '${WHITELIST_PROPERTY}' from Maven build [${WHITELISTED_BRANCHES_VALUE}]"
+}
+
+# Stash any outstanding changes
+function stash_changes() {
+ git diff-index --quiet HEAD && dirty=$? || (echo "Failed to check if the current repo is dirty. Assuming that it is." && dirty="1")
+ if [ "$dirty" != "0" ]; then git stash; fi
+}
+
+# Switch to gh-pages branch to sync it with current branch
+function add_docs_from_target() {
+ local DESTINATION_REPO_FOLDER
+ if [[ -z "${DESTINATION}" && -z "${CLONE}" ]] ; then
+ DESTINATION_REPO_FOLDER=${ROOT_FOLDER}
+ elif [[ "${CLONE}" == "yes" ]]; then
+ mkdir -p ${ROOT_FOLDER}/target
+ local clonedStatic=${ROOT_FOLDER}/target/spring-cloud-static
+ if [[ ! -e "${clonedStatic}/.git" ]]; then
+ echo "Cloning Spring Cloud Static to target"
+ git clone ${SPRING_CLOUD_STATIC_REPO} ${clonedStatic} && git checkout gh-pages
+ else
+ echo "Spring Cloud Static already cloned - will pull changes"
+ cd ${clonedStatic} && git checkout gh-pages && git pull origin gh-pages
+ fi
+ DESTINATION_REPO_FOLDER=${clonedStatic}/${REPO_NAME}
+ mkdir -p ${DESTINATION_REPO_FOLDER}
+ else
+ if [[ ! -e "${DESTINATION}/.git" ]]; then
+ echo "[${DESTINATION}] is not a git repository"
+ exit 1
+ fi
+ DESTINATION_REPO_FOLDER=${DESTINATION}/${REPO_NAME}
+ mkdir -p ${DESTINATION_REPO_FOLDER}
+ echo "Destination was provided [${DESTINATION}]"
+ fi
+ cd ${DESTINATION_REPO_FOLDER}
+ git checkout gh-pages
+ git pull origin gh-pages
+
+ # Add git branches
+ ###################################################################
+ if [[ -z "${VERSION}" ]] ; then
+ copy_docs_for_current_version
+ else
+ copy_docs_for_provided_version
+ fi
+ commit_changes_if_applicable
+}
+
+
+# Copies the docs by using the retrieved properties from Maven build
+function copy_docs_for_current_version() {
+ if [[ "${CURRENT_BRANCH}" == "master" ]] ; then
+ echo -e "Current branch is master - will copy the current docs only to the root folder"
+ for f in docs/target/generated-docs/*; do
+ file=${f#docs/target/generated-docs/*}
+ if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
+ # Not ignored...
+ cp -rf $f ${ROOT_FOLDER}/
+ git add -A ${ROOT_FOLDER}/$file
+ fi
+ done
+ COMMIT_CHANGES="yes"
+ else
+ echo -e "Current branch is [${CURRENT_BRANCH}]"
+ # http://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin
+ if [[ ",${WHITELISTED_BRANCHES_VALUE}," = *",${CURRENT_BRANCH},"* ]] ; then
+ mkdir -p ${ROOT_FOLDER}/${CURRENT_BRANCH}
+ echo -e "Branch [${CURRENT_BRANCH}] is whitelisted! Will copy the current docs to the [${CURRENT_BRANCH}] folder"
+ for f in docs/target/generated-docs/*; do
+ file=${f#docs/target/generated-docs/*}
+ if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
+ # Not ignored...
+ # We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html
+ if [[ "${file}" == "${MAIN_ADOC_VALUE}.html" ]] ; then
+ # We don't want to copy the spring-cloud-sleuth.html
+ # we want it to be converted to index.html
+ cp -rf $f ${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html
+ git add -A ${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html
+ else
+ cp -rf $f ${ROOT_FOLDER}/${CURRENT_BRANCH}
+ git add -A ${ROOT_FOLDER}/${CURRENT_BRANCH}/$file
+ fi
+ fi
+ done
+ COMMIT_CHANGES="yes"
+ else
+ echo -e "Branch [${CURRENT_BRANCH}] is not on the white list! Check out the Maven [${WHITELIST_PROPERTY}] property in
+ [docs] module available under [docs] profile. Won't commit any changes to gh-pages for this branch."
+ fi
+ fi
+}
+
+# Copies the docs by using the explicitly provided version
+function copy_docs_for_provided_version() {
+ local FOLDER=${DESTINATION_REPO_FOLDER}/${VERSION}
+ mkdir -p ${FOLDER}
+ echo -e "Current tag is [v${VERSION}] Will copy the current docs to the [${FOLDER}] folder"
+ for f in ${ROOT_FOLDER}/docs/target/generated-docs/*; do
+ file=${f#${ROOT_FOLDER}/docs/target/generated-docs/*}
+ copy_docs_for_branch ${file} ${FOLDER}
+ done
+ COMMIT_CHANGES="yes"
+ CURRENT_BRANCH="v${VERSION}"
+}
+
+# Copies the docs from target to the provided destination
+# Params:
+# $1 - file from target
+# $2 - destination to which copy the files
+function copy_docs_for_branch() {
+ local file=$1
+ local destination=$2
+ if ! git ls-files -i -o --exclude-standard --directory | grep -q ^${file}$; then
+ # Not ignored...
+ # We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html
+ if [[ ("${file}" == "${MAIN_ADOC_VALUE}.html") || ("${file}" == "${REPO_NAME}.html") ]] ; then
+ # We don't want to copy the spring-cloud-sleuth.html
+ # we want it to be converted to index.html
+ cp -rf $f ${destination}/index.html
+ git add -A ${destination}/index.html
+ else
+ cp -rf $f ${destination}
+ git add -A ${destination}/$file
+ fi
+ fi
+}
+
+function commit_changes_if_applicable() {
+ if [[ "${COMMIT_CHANGES}" == "yes" ]] ; then
+ COMMIT_SUCCESSFUL="no"
+ git commit -a -m "Sync docs from ${CURRENT_BRANCH} to gh-pages" && COMMIT_SUCCESSFUL="yes" || echo "Failed to commit changes"
+
+ # Uncomment the following push if you want to auto push to
+ # the gh-pages branch whenever you commit to master locally.
+ # This is a little extreme. Use with care!
+ ###################################################################
+ if [[ "${COMMIT_SUCCESSFUL}" == "yes" ]] ; then
+ git push origin gh-pages
+ fi
+ fi
+}
+
+# Switch back to the previous branch and exit block
+function checkout_previous_branch() {
+ # If -version was provided we need to come back to root project
+ cd ${ROOT_FOLDER}
+ git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script"
+ if [ "$dirty" != "0" ]; then git stash pop; fi
+ exit 0
+}
+
+# Assert if properties have been properly passed
+function assert_properties() {
+echo "VERSION [${VERSION}], DESTINATION [${DESTINATION}], CLONE [${CLONE}]"
+if [[ "${VERSION}" != "" && (-z "${DESTINATION}" && -z "${CLONE}") ]] ; then echo "Version was set but destination / clone was not!"; exit 1;fi
+if [[ ("${DESTINATION}" != "" && "${CLONE}" != "") && -z "${VERSION}" ]] ; then echo "Destination / clone was set but version was not!"; exit 1;fi
+if [[ "${DESTINATION}" != "" && "${CLONE}" == "yes" ]] ; then echo "Destination and clone was set. Pick one!"; exit 1;fi
+}
+
+# Prints the usage
+function print_usage() {
+cat </`
+- if the destination switch is passed (-d) then the script will check if the provided dir is a git repo and then will
+ switch to gh-pages of that repo and copy the generated docs to `docs//`
+
+USAGE:
+
+You can use the following options:
+
+-v|--version - the script will apply the whole procedure for a particular library version
+-d|--destination - the root of destination folder where the docs should be copied. You have to use the full path.
+ E.g. point to spring-cloud-static folder. Can't be used with (-c)
+-b|--build - will run the standard build process after checking out the branch
+-c|--clone - will automatically clone the spring-cloud-static repo instead of providing the destination.
+ Obviously can't be used with (-d)
+
+EOF
+}
+
+
+# ==========================================
+# ____ ____ _____ _____ _____ _______
+# / ____|/ ____| __ \|_ _| __ \__ __|
+# | (___ | | | |__) | | | | |__) | | |
+# \___ \| | | _ / | | | ___/ | |
+# ____) | |____| | \ \ _| |_| | | |
+# |_____/ \_____|_| \_\_____|_| |_|
+#
+# ==========================================
+
+while [[ $# > 0 ]]
+do
+key="$1"
+case ${key} in
+ -v|--version)
+ VERSION="$2"
+ shift # past argument
+ ;;
+ -d|--destination)
+ DESTINATION="$2"
+ shift # past argument
+ ;;
+ -b|--build)
+ BUILD="yes"
+ ;;
+ -c|--clone)
+ CLONE="yes"
+ ;;
+ -h|--help)
+ print_usage
+ exit 0
+ ;;
+ *)
+ echo "Invalid option: [$1]"
+ print_usage
+ exit 1
+ ;;
+esac
+shift # past argument or value
+done
+
+assert_properties
+set_default_props
+check_if_anything_to_sync
+if [[ -z "${VERSION}" ]] ; then
+ retrieve_current_branch
+else
+ switch_to_tag
+fi
+build_docs_if_applicable
+retrieve_doc_properties
+stash_changes
+add_docs_from_target
+checkout_previous_branch
\ No newline at end of file
diff --git a/docs/src/main/asciidoc/spring-cloud-releaser.adoc b/docs/src/main/asciidoc/spring-cloud-releaser.adoc
new file mode 100644
index 00000000..1e8f2e7b
--- /dev/null
+++ b/docs/src/main/asciidoc/spring-cloud-releaser.adoc
@@ -0,0 +1,49 @@
+:github-tag: master
+:org: marcingrzejszczak
+:repo: releaser
+:github-repo: {org}/{repo}
+:github-raw: http://raw.github.com/{github-repo}/{github-tag}
+:github-code: http://github.com/{github-repo}/tree/{github-tag}
+:toc: left
+:toclevels: 8
+:nofooter:
+
+Spring Cloud Releaser
+====================
+
+This project can be used to
+
+- update all versions in your Spring Cloud Project according to the Spring Cloud Release setup
+
+== How to run it
+
+Currently we only support running the releaser to update the poms from Java
+
+[source,bash]
+----
+git clone https://github.com/marcingrzejszczak/releaser
+cd releaser
+./mvnw clean package
+----
+
+and then go to your project (e.g. Spring Cloud Sleuth)
+
+[source,bash]
+----
+git clone https://github.com/spring-cloud/spring-cloud-sleuth
+cd spring-cloud-sleuth
+java -jar ~/path/to/cloned/releaser/releaser-spring/target/releaser-spring-0.0.1.BUILD-SNAPSHOT.jar
+----
+
+You'll be asked to press `Enter` to continue (to check whether you're running it from a proper path).
+
+== Future plans
+
+In the future it can also:
+
+- commit the changed values
+- perform a release
+
+Other plans:
+
+- add a Maven plugin to perform the work from Maven
\ No newline at end of file
diff --git a/docs/src/main/ruby/generate_readme.sh b/docs/src/main/ruby/generate_readme.sh
new file mode 100755
index 00000000..6d0ce9dc
--- /dev/null
+++ b/docs/src/main/ruby/generate_readme.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env ruby
+
+base_dir = File.join(File.dirname(__FILE__),'../../..')
+src_dir = File.join(base_dir, "/src/main/asciidoc")
+require 'asciidoctor'
+require 'optparse'
+
+options = {}
+file = "#{src_dir}/README.adoc"
+
+OptionParser.new do |o|
+ o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' }
+ o.on('-h', '--help') { puts o; exit }
+ o.parse!
+end
+
+file = ARGV[0] if ARGV.length>0
+
+# Copied from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/scripts/asciidoc-coalescer.rb
+doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: options[:attributes]
+header_attr_names = (doc.instance_variable_get :@attributes_modified).to_a
+header_attr_names.each {|k| doc.attributes[%(#{k}!)] = '' unless doc.attr? k }
+attrs = doc.attributes
+attrs['allow-uri-read'] = true
+puts attrs
+
+out = "// Do not edit this file (e.g. go instead to src/main/asciidoc)\n\n"
+doc = Asciidoctor.load_file file, safe: :unsafe, parse: false, attributes: attrs
+out << doc.reader.read
+
+unless options[:to_file]
+ puts out
+else
+ File.open(options[:to_file],'w+') do |file|
+ file.write(out)
+ end
+end
diff --git a/pom.xml b/pom.xml
index 2a25239f..e87e13d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
+ docs
releaser-core
releaser-spring
diff --git a/releaser-spring/src/main/java/org/springframework/cloud/release/ReleaserApplication.java b/releaser-spring/src/main/java/org/springframework/cloud/release/ReleaserApplication.java
index 8f3fcbe4..1016acbb 100644
--- a/releaser-spring/src/main/java/org/springframework/cloud/release/ReleaserApplication.java
+++ b/releaser-spring/src/main/java/org/springframework/cloud/release/ReleaserApplication.java
@@ -41,7 +41,7 @@ public class ReleaserApplication implements CommandLineRunner {
@Override public void run(String... strings) throws Exception {
String workingDir = System.getProperty("user.dir");
log.info("Will run the application for root folder [{}]", workingDir);
- log.info("Press any key to continue...");
+ log.info("Press Enter to continue...");
System.in.read();
this.projectUpdater.updateProject(new File(workingDir));
System.exit(0);