Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Made it more configurable #1

merged 2 commits into from

2 participants


I added options to make it push to github automatically, and to skip the editing of the comment.

@danielctull danielctull merged commit 7b09d17 into danielctull:master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
Showing with 41 additions and 13 deletions.
  1. +41 −13
@@ -5,7 +5,7 @@
# Run this script from the root of your project.
# It makes a temporary directory and generates appledoc documentation for your
-# project in that directory.
+# project in that directory.
# It then makes a local clone of your documentation branch (called gh-pages, by default)
# copies the generated appledoc html into a folder in the branch (called Documentation by default)
# commits the new documentation and pushes it back to the project repo.
@@ -17,7 +17,7 @@
# - the name of the root folder is the name of the project
# - your appledoc templates are in ~/.appledoc (can be a symlink)
# - you have a GlobalSettings.plist file in your appledoc templates folder
-# - you've set values in GlobalSettings.plist for --project-company, --company-id
+# - you've set values in GlobalSettings.plist for --project-company, --company-id
# The script looks at the remotes configured in the repo to try to work out what your github
# user name is, so that it can generate the correct urls for a docset feed.
@@ -29,20 +29,23 @@ originaldirectory=`git rev-parse --show-toplevel`
codebranch=`$git rev-parse --abbrev-ref HEAD`
projectname=`basename "$PWD"`
initialdefaultcommitmessage="Initial documentation"
updatedefaultcommitmessage="Update documentation"
# find real templates location (.appledoc might be a link)
pushd $HOME > /dev/null
link=`readlink ".appledoc"`
if [[ $link != "" ]];
-cd $link
+ cd $link
-cd ".appledoc"
+ cd ".appledoc"
popd > /dev/null
@@ -59,7 +62,7 @@ githubuser=${BASH_REMATCH[2]}
if [[ "$codebranch" == "gh-pages" ]]
echo "You seem to be on the gh-pages branch. Checkout a code branch instead."
- exit 1
+exit 1
echo "Generating documentation for $projectname"
@@ -68,6 +71,11 @@ echo "Generating documentation for $projectname"
rm -rf "$tempdir"
mkdir -p -v "$tempdir"
+# include settings file if it's present
+if [ -e ./.appledoc.plist ]; then
+ echo "Found appledoc settings file"
+ settings=./.appledoc.plist
# generate docset and html, install docset in xcode, create atom feed and downloadable package
appledoc \
@@ -83,18 +91,18 @@ appledoc \
--docset-package-url "http://$$projectname/$docdirectory/%DOCSETPACKAGEFILENAME" \
--docset-fallback-url "http://$$docdirectory/" \
--project-name $projectname \
- -o "$tempdir" "$@" ./
+ -o "$tempdir" "$@" $settings ./
# clone doc branch of current repo into temporary location
$git clone "$originaldirectory" "$tempdir/branch"
if $git show-ref --tags --quiet --verify -- "refs/heads/$docbranch"
- cd "$tempdir/branch"
+ pushd "$tempdir/branch" > /dev/null
echo "Checking out $docbranch branch"
$git checkout $docbranch
- cd "$tempdir/branch"
+ pushd "$tempdir/branch" > /dev/null
echo "Creating $docbranch branch"
$git symbolic-ref HEAD "refs/heads/$docbranch"
@@ -110,9 +118,13 @@ mkdir "$docdirectory"
mv -v ../html/* "$docdirectory"
mv -v ../publish/* "$docdirectory"
-# add directory and commit with default message, allowing editing
+# add directory and commit with default message
$git add -f -v "$docdirectory"
-$git commit -e -m "$defaultcommitmessage"
+if $editcommit; then
+ $git commit -e -m "$defaultcommitmessage"
+ $git commit -m "$defaultcommitmessage"
# push changes back to our repo
$git push origin $docbranch
@@ -120,6 +132,22 @@ $git push origin $docbranch
# remove temporary directory
rm -rf "$tempdir"
+popd > /dev/null
+# if publishing is on, push the documentation pages, otherwise echo out the command that would push them
+if $publish ; then
+ git push $githubrepo $docbranch:$docbranch
+ echo "To push the documentation changes, do:"
+ echo "git push $githubrepo $docbranch:$docbranch"
+# echo info on the location of the feed
echo "Feed URL is at http://$$projectname/$docdirectory/docset.atom"
-echo "To push the documentation changes, do:"
-echo "git push $githubrepo $docbranch:$docbranch"
+echo "Documentation changes may take a while to filter through..."
+# open the top of the documentation pages in the browser
+if $open ; then
+ open "http://$$projectname/$docdirectory"
Something went wrong with that request. Please try again.