Move docs to submodule for multi-module projects

This commit is contained in:
Dave Syer
2014-10-06 14:58:44 +01:00
parent 77ac511c8c
commit b6eda4ba37
11 changed files with 91 additions and 29 deletions

41
docs/README.adoc Normal file
View File

@@ -0,0 +1,41 @@
// Do not edit this file (e.g. go instead to src/main/asciidoc)
Spring Boot command line features for
https://github.com/spring-cloud[Spring Cloud].
== Installation
To install, make
sure you have
https://github.com/spring-projects/spring-boot[Spring Boot CLI]
(1.1.x with x>=5):
$ spring version
Spring CLI v1.1.5.RELEASE
E.g. for GVM users
```
$ gvm install springboot 1.1.5.RELEASE
$ gvm use springboot 1.1.5.RELEASE
```
then get the install command plugin (backported from Boot 1.2.0):
```
$ wget http://dl.bintray.com/dsyer/generic/install-0.0.1.jar
```
install it in the Spring Boot CLI, e.g. with GVM (MacOS users that rely on brew might have to find the `/lib` directory by scanning `brew info springboot`):
```
$ cp install-0.0.1.jar ~/.gvm/springboot/1.1.5.RELEASE/lib
```
and finally install the Spring Cloud plugin:
```
$ mvn install
$ spring install org.springframework.cloud:spring-cloud-cli:1.0.0.BUILD-SNAPSHOT
```

44
docs/pom.xml Normal file
View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cli-docs</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<relativePath/>
</parent>
<packaging>pom</packaging>
<name>Spring Cloud Cli Docs</name>
<description>Spring Cloud Docs</description>
<properties>
<docs.main>spring-cloud-cli</docs.main>
<main.basedir>${basedir}/..</main.basedir>
</properties>
<profiles>
<profile>
<id>docs</id>
<build>
<plugins>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<inherited>false</inherited>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<inherited>false</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<inherited>false</inherited>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@@ -0,0 +1,5 @@
include::intro.adoc[]
== Installation
include::install.adoc[]

View File

@@ -0,0 +1,46 @@
#!/bin/bash -x
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 ]; then
echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
exit 0
fi
# Stash any outstanding changes
###################################################################
git diff-index --quiet HEAD
dirty=$?
if [ "$dirty" != "0" ]; then git stash; fi
# Switch to gh-pages branch to sync it with master
###################################################################
git checkout gh-pages
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 .
git add -A $file
fi
done
git commit -a -m "Sync docs from master to gh-pages"
# 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!
###################################################################
git push origin gh-pages
# Finally, switch back to the master branch and exit block
git checkout master
if [ "$dirty" != "0" ]; then git stash pop; fi
exit 0

View File

@@ -0,0 +1,33 @@
To install, make
sure you have
https://github.com/spring-projects/spring-boot[Spring Boot CLI]
(1.1.x with x>=5):
$ spring version
Spring CLI v1.1.5.RELEASE
E.g. for GVM users
```
$ gvm install springboot 1.1.5.RELEASE
$ gvm use springboot 1.1.5.RELEASE
```
then get the install command plugin (backported from Boot 1.2.0):
```
$ wget http://dl.bintray.com/dsyer/generic/install-0.0.1.jar
```
install it in the Spring Boot CLI, e.g. with GVM (MacOS users that rely on brew might have to find the `/lib` directory by scanning `brew info springboot`):
```
$ cp install-0.0.1.jar ~/.gvm/springboot/1.1.5.RELEASE/lib
```
and finally install the Spring Cloud plugin:
```
$ mvn install
$ spring install org.springframework.cloud:spring-cloud-cli:1.0.0.BUILD-SNAPSHOT
```

View File

@@ -0,0 +1,3 @@
Spring Boot command line features for
https://github.com/spring-cloud[Spring Cloud].

View File

@@ -0,0 +1,7 @@
= Spring Boot CLoud CLI
include::intro.adoc[]
== Installation
include::install.adoc[]

View File

@@ -0,0 +1,19 @@
#!/usr/bin/env ruby
base_dir = File.join(File.dirname(__FILE__),'../../..')
src_dir = File.join(base_dir, "/src/main/asciidoc")
require File.join(File.dirname(__FILE__), 'readme.rb')
require 'optparse'
options = {}
input = "#{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
input = ARGV[0] if ARGV.length>0
SpringCloud::Build.render_file(input, options)

View File

@@ -0,0 +1,54 @@
require 'open-uri'
module SpringCloud
module Build
IncludeDirectiveRx = /^\\?include::([^\[]+)\[(.*?)\]$/
class << self
def process_include out, src, target, attrs
unless target.include?(':') || target.start_with?('/')
target = File.join(src, target)
end
open(target) do |file|
file.each do |line|
self.process(out, File.dirname(target), line)
end
end
end
def process out, src, line
if ((escaped = line.start_with?('\\include::')) || line.start_with?('include::')) && (match = IncludeDirectiveRx.match(line))
if escaped
out << line[1..-1]
else
self.process_include out, src, match[1], match[2].strip
end
else
out << line
end
end
def render_file file, options = {}
srcDir = File.dirname(file)
out = ["// Do not edit this file (e.g. go instead to src/main/asciidoc)\n","\n"]
File.new(file).each do |line|
self.process(out, srcDir, line)
end
unless options[:to_file]
puts out
else
File.open(options[:to_file],'w+') do |file|
out.each { |line| file.write(line) }
end
end
end
end
end
end