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.
master
Joey Hess 2009-01-12 19:04:24 -05:00
parent 5b1f7f293d
commit 6d785d6401
7 changed files with 79 additions and 3 deletions

View File

@ -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});

View File

@ -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
}
}

49
auto-blog.setup 100644
View File

@ -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,
)

View File

@ -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?"), "");

2
debian/changelog vendored
View File

@ -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

4
debian/preinst vendored
View File

@ -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

3
debian/rules vendored
View File

@ -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