summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Setup/Automator.pm3
-rw-r--r--doc/ikiwiki-makerepo.mdwn5
-rw-r--r--doc/setup.mdwn25
-rwxr-xr-xikiwiki-makerepo19
4 files changed, 25 insertions, 27 deletions
diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm
index a54b53817..724583761 100644
--- a/IkiWiki/Setup/Automator.pm
+++ b/IkiWiki/Setup/Automator.pm
@@ -52,6 +52,9 @@ sub import (@) { #{{{
elsif ($config{rcs} eq 'svn') {
$config{svn_wrapper}=$config{repository}."/hooks/post-commit";
}
+ elsif ($config{rcs} eq 'monotone') {
+ $config{mtn_wrapper}=$config{srcdir}."_MTN/ikiwiki-netsync-hook";
+ }
elsif ($config{rcs} eq 'bzr') {
# TODO
}
diff --git a/doc/ikiwiki-makerepo.mdwn b/doc/ikiwiki-makerepo.mdwn
index e76b3f318..dcebbb96a 100644
--- a/doc/ikiwiki-makerepo.mdwn
+++ b/doc/ikiwiki-makerepo.mdwn
@@ -4,7 +4,7 @@ ikiwiki-makerepo - check an ikiwiki srcdir into revision control
# SYNOPSIS
-ikiwiki-makerepo svn|git srcdir repository
+ikiwiki-makerepo svn|git|monotone srcdir repository
ikiwiki-makerepo mercurial srcdir
@@ -17,6 +17,9 @@ mercurial repository.
Note that for mercurial, the srcdir is converted into a mercurial
repository. There is no need to have a separate repository with mercurial.
+Note that for monotone, you are assumed to already have run "mtn genkey" to generate
+key.
+
# AUTHOR
Joey Hess <joey@ikiwiki.info>
diff --git a/doc/setup.mdwn b/doc/setup.mdwn
index 647e8b86f..affc3ec16 100644
--- a/doc/setup.mdwn
+++ b/doc/setup.mdwn
@@ -181,28 +181,9 @@ about using the git repositories.
[[!toggle id=monotone text="Monotone"]]
[[!toggleable id=monotone text="""
- # These instructions are standard instructions to import a directory into monotone
- # and set it up so that you don't need any passwords to use it
- REPOSITORY=~/.ikiwiki/mtn.db
- BRANCH=com.company.wikiname
- # remember the password you use in the next step and
- # substitute it for 'wikiKeyPass' in the get_passphrase() hook below
- # note the you should never generate two monotone keys with the same name
- mtn genkey web@example.com
- mtn db init --db=$REPOSITORY
- mv $SRCDIR $SRCDIR-old
- cd $SRCDIR-old
- echo ".ikiwiki" > $SRCDIR-old/.mtn-ignore
- mtn --db=$REPOSITORY --branch=$BRANCH import . -m "initial import"
- cd ..
- mtn --db=$REPOSITORY --branch=$BRANCH checkout $SRCDIR
- mv $SRCDIR-old/.ikiwiki $SRCDIR
- cat << EOF > $SRCDIR/_MTN/monotonerc
- function get_passphrase (branchname)
- return "wikiKeyPass"
- end
- EOF
- rm -r $SRCDIR-old
+ # This assumes that you have already used "mtn genkey you@hostname".
+ REPOSITORY=~/wiki.monotone
+ ikiwiki-makerepo git $SRCDIR $REPOSITORY
"""]]
## Configure ikiwiki to use revision control.
diff --git a/ikiwiki-makerepo b/ikiwiki-makerepo
index aef3e4d0f..245043a5c 100755
--- a/ikiwiki-makerepo
+++ b/ikiwiki-makerepo
@@ -94,12 +94,12 @@ monotone)
fi
repodir=$(dirname "$repository")
mkdir -p "$repodir"
- file_basename=$(basename -s .monotone "$repository" |\
+ file_basename=$(basename "$repository" | sed -e 's/\.monotone$//' |\
tr -s "[:space:]" "_" | sed 's/_$//g')
- reverse_hostname=$((hostname -f 2>/dev/null || hostname) |\
- tr "." "\n" | tail -r | tr "\n" ".")
+ reverse_hostname=$( (hostname -f 2>/dev/null || hostname) |\
+ tr "." "\n" | tac | tr "\n" ".")
branch_name="$reverse_hostname$file_basename"
- reponame_with_ext="$file_basename.mtn"
+ reponame_with_ext="$file_basename.monotone"
mtn db init -d "$repodir/$reponame_with_ext"
mtn setup -d "$repodir/$reponame_with_ext" -b "$branch_name" "$srcdir"
cd "$srcdir"
@@ -109,6 +109,17 @@ monotone)
# with a default key floating around...
mtn ci -m "initial import"
echo "Directory $srcdir is now set up as a monotone repository"
+ echo ""
+ echo "Note: If your monotone key has a passphrase, you need to configure"
+ echo "monotone to automatically use it. Otherwise, web commits to ikiwiki"
+ echo "will fail."
+ echo ""
+ echo "You can create a $srcdir/_MTN/monotonerc"
+ echo "containing the passphrase:"
+ echo ""
+ echo "function get_passphrase (branchname)"
+ echo ' return "passphrasehere"'
+ echo "end"
;;
*)
echo "Unsupported revision control system $rcs" >&2