Add auto-blog.setup
authorJoey Hess <joey@gnu.kitenet.net>
Tue, 13 Jan 2009 00:04:24 +0000 (19:04 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Tue, 13 Jan 2009 00:04:24 +0000 (19:04 -0500)
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
Makefile.PL
auto-blog.setup [new file with mode: 0644]
auto.setup
debian/changelog
debian/preinst
debian/rules

index 9f2380d52e0eb1a48bfd218b23c0cd0e94e2e9f2..b7798fcec09c287ae247bc12d6c9923ae8b3971d 100644 (file)
@@ -73,8 +73,18 @@ sub import (@) {
 
        print "\n\nSetting up $config{wikiname} ...\n";
 
 
        print "\n\nSetting up $config{wikiname} ...\n";
 
-       # Set up the repository.
+       # Set up the srcdir.
        mkpath($config{srcdir}) || die "mkdir $config{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});
        delete $config{repository} if ! $config{rcs} || $config{rcs}=~/bzr|mercurial/;
        if ($config{rcs}) {
                my @params=($config{rcs}, $config{srcdir});
index d92d54d1eea7b384530d2a2881bd54674e2d9548..d29804ccaba91ca3af1fe2b4f8d6dd0a874c0043 100755 (executable)
@@ -69,6 +69,15 @@ extra_install:
                        install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive; \
                fi \
        done
                        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; \
 
        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 -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 (file)
index 0000000..35a6fc1
--- /dev/null
@@ -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,
+)
index 9cf5e7725ede534f1d5e16c1d7f06a8064156ed0..1231309b276a4a996635052696a402335b60ed2c 100644 (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(
 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?"), "");
 use Net::Domain q{hostfqdn};
 our $domain=hostfqdn() || ikiwiki::setup::automator::ask(
        gettext("What is the domain name of the web server?"), "");
index 9f6790ceb6a2c16632a41acb78e1b12b3c07f3f7..f35606148353cd863b65070e3487cca13033a6d5 100644 (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.
     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
 
 
  -- Joey Hess <joeyh@debian.org>  Tue, 06 Jan 2009 15:02:52 -0500
 
index c588901df914968a70cbb3242b883f75e518043b..4158b2ae6636667d9b86583e7720cbe4153164b0 100755 (executable)
@@ -14,3 +14,7 @@ if [ "$1" = upgrade ] && dpkg --compare-versions "$2" lt 1.2; then
                fi
        fi
 fi
                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
index 25b1f57b6a636ffe170efaf6b208bb61346ef9b9..2434d92c8e069ecdf5d67da4388ed3ceab3fc5d2 100755 (executable)
@@ -25,8 +25,9 @@ binary-indep: build
        dh_clean -k
        $(MAKE) pure_install DESTDIR=$(shell pwd)/debian/ikiwiki
        dh_installdocs html
        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_link usr/share/common-licenses/GPL-2 usr/share/doc/ikiwiki/html/GPL
+       dh_installexamples
        dh_installchangelogs
        dh_compress -X html
        dh_fixperms
        dh_installchangelogs
        dh_compress -X html
        dh_fixperms