Tags:
archive_me1Add my vote for this tag create new tag
, view all tags

AutomatedBuild

here's a script i've used to perform a completely automated installation, from building the TWikiKernel from SVN, including packaging all conformant plugins, addons, and contrib modules; mirrors cpan modules used by twiki and plugins; to an actual unattended, automated installation. ( if you have your ssh keys setup properly, that is, otherwise you'll need to type the password in (twice) frown )

#!/usr/bin/perl -w
use strict;
use Data::Dumper qw( Dumper );

use Cwd qw( getcwd );
use File::Copy qw( cp );

my $platform = qw( darwin sourceforge )[0];

# BUILD OPTIONS
my $twikiplugins = '/Users/wbniv/twiki/twikiplugins';

# INSTALL OPTIONS
my $account = 'twiki';
my $host = 'localhost';
my $dir = '~/Sites';

my $twiki_config = extensions2uri({
    contrib => [ qw( DistributionContrib ) ],   # AttrsContrib DBCacheContrib DistributionContrib JSCalendarContrib TWikiShellContrib
    plugin => [ qw( PerlDocPlugin 
          FindElsewherePlugin InterwikiPlugin SpreadSheetPlugin TablePlugin TocPlugin 
          SpacedWikiWordPlugin ChartPlugin SvgPlugin
          TWikiReleaseTrackerPlugin
          ) ],
    # ActionTrackerPlugin BeautifierPlugin CalendarPlugin CommentPlugin FindElsewherePlugin InterwikiPlugin 
    # SpacedWikiWordPlugin SpreadSheetPlugin TWikiReleaseTrackerPlugin TablePlugin TocPlugin
    addon => [ qw( GetAWebAddOn ) ],      # GetAWebAddOn PluginBenchmarkAddOn
});

################################################################################
# BUILD

my $dirInstaller = "${twikiplugins}/lib/TWiki/Contrib/TWikiInstallerContrib";

chomp( my $newDistro = (`perl ./build-twiki-kernel.pl`)[-1] );
die "no TWikiKernel built?: [$newDistro]" unless $newDistro =~ /TWikiKernel-[^-]+-\d{8}.\d{6}.tar.gz/;
cp( $newDistro, "${dirInstaller}/downloads/releases/" ) or die $!;

chdir "${dirInstaller}" or die $!;
unlink "twiki-${platform}.tar.bz2";
#system qq{make platform=\U$platform\E distro};
system qq{make platform=\U$platform\E twiki-${platform}.tar.bz2};

################################################################################
# (PUSH) INSTALL (TO REMOTE SITE)

system qq{scp twiki-${platform}.tar.bz2 ${account}\@${host}:${dir}};
system qq{ssh ${account}\@${host} "cd ${dir}; tar xjf twiki-${platform}.tar.bz2; time ./pre-twiki.sh; time curl 'http://${host}/~${account}/cgi-bin/install_twiki.cgi?${twiki_config};twiki=${newDistro};install=install' -o 'TWikiInstallationReport.html'; ./post-twiki.pl"};

################################################################################
################################################################################

sub extensions2uri
{
    my $config = shift or die;

    my @config;
    foreach my $ext ( keys %$config )
    {
   push @config, join( ';', map { "${ext}=$_" } @{$config->{$ext}} );
    }
    return join( ';', @config );
}

this is obviously too hardcoded for my setup, but i wanted to give a heads up on how this is proceeding.

-- WillNorris - 12 Nov 2004

this is actually half an AutomatedBuild and half an AutomatedInstall; i'll update the docs tomorrow when i'm less sleepy wink

-- WillNorris - 12 Nov 2004

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r5 - 2004-11-14 - WillNorris
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.