#!/usr/bin/perl # # Drakwizard # Copyright (C) 2003 Florent Villard # Copyright (C) 2004 Antoine Ginies # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. package MDK::Wizard::Kolab; use strict; use common; use MDK::Wizard::IFCFG; use MDK::Wizard::Wizcommon; my $wiz = new MDK::Wizard::Wizcommon; my $HOSTNAME = chomp_(`hostname`); my $IPSERVER = $wiz->{net}->itf_get("IPADDR"); if (!$IPSERVER) { my $interface = 'eth0'; ($IPSERVER) = `/sbin/ip addr show dev $interface` =~ /^\s*inet\s+(\d+\.\d+\.\d+\.\d+)/m; } my $DOMAINNAME = chomp_(`domainname`); my $o = { name => N("Kolab configuration wizard"), init => sub { if (member($DOMAINNAME, qw(localdomain (none)))) { return 0, N("You need to readjust your domainname, not equal to localdomain or none. Please launch drakconnect to adjust it.") } 1 }, var => { HOSTNAME => $HOSTNAME, ip1 => $IPSERVER, maildomain => $DOMAINNAME, password => '', }, # needed_rpm => [ 'kolab-server', 'postfix', 'openldap-servers', 'proftpd' ], defaultimage => $ENV{__WIZ_HOME__}, }; $o->{pages} = { welcome => { name => N("Welcome to the Kolab Groupware server configuration Wizard."), no_back => 1, next => 'hostname' }, hostname => { name => N("Hostname"), data => [ { label => N("Hostname:"), val => \$o->{var}{HOSTNAME} }, { label => N("Mail domain:"), val => \$o->{var}{maildomain} }, ], next => 'password' }, password => { name => N("Password"), data => [ { label => N("Password:"), val => \$o->{var}{password} }, { label => N("Password again:"), val => \$o->{var}{password2} }, ], post => \&check_password, next => 'summary' }, warning => { name => N("Warning.") . "\n\n", next => 'summary' }, error => { name => N("Error.") . "\n\n", next => 'config' }, summary => { name => N("The wizard will now configured Kolab server with this parameters"), data => [ { label => N("Hostname:"), fixed_val => \$o->{var}{HOSTNAME} }, { label => N("Password:"), fixed_val => \$o->{var}{password} }, { label => N("Mail domain:"), fixed_val => \$o->{var}{maildomain} }, ], post => \&do_it, next => 'end' }, end => { name => N("Congratulations") . "\n\n" . N("The kolab server is now configured and running. Log in as 'manager' with the password you entered."), end => 1, next => 0 }, }; sub new { my ($class) = @_; bless { o => $o, }, $class; } sub check_password { $o->{var}{password} ne $o->{var}{password2} or return 'passwd'; } sub do_it { $::testing or return; print ".....\n"; } 1;