From 6d785d6401799bf929316cb070471601798de4c0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 12 Jan 2009 19:04:24 -0500 Subject: [PATCH] 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. --- IkiWiki/Setup/Automator.pm | 12 +++++++++- Makefile.PL | 10 ++++++++ auto-blog.setup | 49 ++++++++++++++++++++++++++++++++++++++ auto.setup | 2 +- debian/changelog | 2 ++ debian/preinst | 4 ++++ debian/rules | 3 ++- 7 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 auto-blog.setup 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 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 -- 2.32.0.93.g670b81a890