aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-01-12 19:04:24 -0500
committerJoey Hess <joey@gnu.kitenet.net>2009-01-12 19:04:24 -0500
commit6d785d6401799bf929316cb070471601798de4c0 (patch)
tree9cddd8e1b4a0fb5a7fb48cefb9048b3e4160d0fc
parent5b1f7f293dc5fed596f4745398b9c774b725a73b (diff)
downloadikiwiki-6d785d6401799bf929316cb070471601798de4c0.tar
ikiwiki-6d785d6401799bf929316cb070471601798de4c0.tar.gz
Add auto-blog.setup
It will set up an ikiwiki instance tuned for use in blogging. As part of this change, move the example sites into /usr/share/ikiwiki so they are available even if docs are not installed.
-rw-r--r--IkiWiki/Setup/Automator.pm12
-rwxr-xr-xMakefile.PL10
-rw-r--r--auto-blog.setup49
-rw-r--r--auto.setup2
-rw-r--r--debian/changelog2
-rwxr-xr-xdebian/preinst4
-rwxr-xr-xdebian/rules3
7 files changed, 79 insertions, 3 deletions
diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm
index 9f2380d52..b7798fcec 100644
--- a/IkiWiki/Setup/Automator.pm
+++ b/IkiWiki/Setup/Automator.pm
@@ -73,8 +73,18 @@ sub import (@) {
print "\n\nSetting up $config{wikiname} ...\n";
- # Set up the repository.
+ # Set up the srcdir.
mkpath($config{srcdir}) || die "mkdir $config{srcdir}: $!";
+ # Copy in example wiki.
+ if (exists $config{example}) {
+ # cp -R is POSIX
+ # Another reason not to use -a is so that pages such as blog
+ # posts will not have old creation dates on this new wiki.
+ system("cp -R $IkiWiki::installdir/share/ikiwiki/examples/$config{example}/* $config{srcdir}");
+ delete $config{example};
+ }
+
+ # Set up the repository.
delete $config{repository} if ! $config{rcs} || $config{rcs}=~/bzr|mercurial/;
if ($config{rcs}) {
my @params=($config{rcs}, $config{srcdir});
diff --git a/Makefile.PL b/Makefile.PL
index d92d54d1e..d29804cca 100755
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -69,6 +69,15 @@ extra_install:
install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive; \
fi \
done
+
+ # Install example sites.
+ for dir in `cd doc/examples; find -type d ! -regex '.*\.svn.*'`; do \
+ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$dir; \
+ done
+ for file in `cd doc/examples; find -type f ! -regex '.*\.svn.*'`; do \
+ cp -aL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file || \
+ install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \
+ done
for dir in `find templates -follow -type d ! -regex '.*\.svn.*'`; do \
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
@@ -111,6 +120,7 @@ extra_install:
-install -d $(DESTDIR)/etc/ikiwiki
-install -m 0644 wikilist $(DESTDIR)/etc/ikiwiki
-install -m 0644 auto.setup $(DESTDIR)/etc/ikiwiki
+ -install -m 0644 auto-blog.setup $(DESTDIR)/etc/ikiwiki
}
}
diff --git a/auto-blog.setup b/auto-blog.setup
new file mode 100644
index 000000000..35a6fc161
--- /dev/null
+++ b/auto-blog.setup
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+# Ikiwiki setup automator -- blog version.
+#
+# This setup file causes ikiwiki to create a wiki, containing a blog,
+# check it into revision control, generate a setup file for the new
+# wiki, and set everything up.
+#
+# Just run: ikiwiki -setup /etc/ikiwiki/auto-blog.setup
+#
+# By default, it asks a few questions, and confines itself to the user's home
+# directory. You can edit it to change what it asks questions about, or to
+# modify the values to use site-specific settings.
+
+require IkiWiki::Setup::Automator;
+
+our $wikiname=IkiWiki::Setup::Automator::ask(
+ gettext("What will the blog be named?"), gettext("blog"));
+our $rcs=IkiWiki::Setup::Automator::ask(
+ gettext("What revision control system to use?"), "git");
+our $admin=IkiWiki::Setup::Automator::ask(
+ gettext("What wiki user (or openid) will be admin?"), $ENV{USER});
+use Net::Domain q{hostfqdn};
+our $domain=hostfqdn() || ikiwiki::setup::automator::ask(
+ gettext("What is the domain name of the web server?"), "");
+
+IkiWiki::Setup::Automator->import(
+ wikiname => $wikiname,
+ adminuser => [$admin],
+ rcs => $rcs,
+ srcdir => "$ENV{HOME}/$wikiname",
+ destdir => "$ENV{HOME}/public_html/$wikiname",
+ repository => "$ENV{HOME}/$wikiname.".($rcs eq "monotone" ? "mtn" : $rcs),
+ dumpsetup => "$ENV{HOME}/$wikiname.setup",
+ url => "http://$domain/~$ENV{USER}/$wikiname",
+ cgiurl => "http://$domain/~$ENV{USER}/$wikiname/ikiwiki.cgi",
+ cgi_wrapper => "$ENV{HOME}/public_html/$wikiname/ikiwiki.cgi",
+ adminemail => "$ENV{USER}\@$domain",
+ add_plugins => [qw{goodstuff websetup comments}],
+ disable_plugins => [qw{}],
+ libdir => "$ENV{HOME}/.ikiwiki",
+ rss => 1,
+ atom => 1,
+ syslog => 1,
+ hardlink => 1,
+
+ example => "blog",
+ comments_pagespec => "posts/* and !*/Discussion",
+ discussion => 0,
+)
diff --git a/auto.setup b/auto.setup
index 9cf5e7725..1231309b2 100644
--- a/auto.setup
+++ b/auto.setup
@@ -17,7 +17,7 @@ our $wikiname=IkiWiki::Setup::Automator::ask(
our $rcs=IkiWiki::Setup::Automator::ask(
gettext("What revision control system to use?"), "git");
our $admin=IkiWiki::Setup::Automator::ask(
- gettext("What wiki user (or openid) will be wiki admin?"), $ENV{USER});
+ gettext("What wiki user (or openid) will be admin?"), $ENV{USER});
use Net::Domain q{hostfqdn};
our $domain=hostfqdn() || ikiwiki::setup::automator::ask(
gettext("What is the domain name of the web server?"), "");
diff --git a/debian/changelog b/debian/changelog
index 9f6790ceb..f35606148 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -16,6 +16,8 @@ ikiwiki (3.02) UNRELEASED; urgency=low
the nostromo web server.
* Recommend libterm-readline-gnu-perl since that makes auto.setup
behave better.
+ * Add auto-blog.setup, which will set up an ikiwiki instance tuned for use
+ in blogging.
-- Joey Hess <joeyh@debian.org> Tue, 06 Jan 2009 15:02:52 -0500
diff --git a/debian/preinst b/debian/preinst
index c588901df..4158b2ae6 100755
--- a/debian/preinst
+++ b/debian/preinst
@@ -14,3 +14,7 @@ if [ "$1" = upgrade ] && dpkg --compare-versions "$2" lt 1.2; then
fi
fi
fi
+if [ "$1" = upgrade ] && dpkg --compare-versions "$2" lt 3.02; then
+ # replaced by symlink
+ rm -rf /usr/share/doc/ikiwiki/examples
+fi
diff --git a/debian/rules b/debian/rules
index 25b1f57b6..2434d92c8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -25,8 +25,9 @@ binary-indep: build
dh_clean -k
$(MAKE) pure_install DESTDIR=$(shell pwd)/debian/ikiwiki
dh_installdocs html
- dh_installexamples doc/examples/*
+ dh_link usr/share/ikiwiki/examples usr/share/doc/ikiwiki/examples
dh_link usr/share/common-licenses/GPL-2 usr/share/doc/ikiwiki/html/GPL
+ dh_installexamples
dh_installchangelogs
dh_compress -X html
dh_fixperms