summaryrefslogtreecommitdiffstats
path: root/drakwizard.pl
diff options
context:
space:
mode:
Diffstat (limited to 'drakwizard.pl')
-rwxr-xr-xdrakwizard.pl90
1 files changed, 90 insertions, 0 deletions
diff --git a/drakwizard.pl b/drakwizard.pl
new file mode 100755
index 00000000..ba8f710d
--- /dev/null
+++ b/drakwizard.pl
@@ -0,0 +1,90 @@
+#!/usr/bin/perl
+
+# Drakwizard
+
+# Copyright (C) 2003 Mandrakesoft
+#
+# Author: Florent Villard <warly@mandrakesoft.com>
+#
+# 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.
+
+use lib qw(/usr/lib/libDrakX);
+use strict;
+use wizards;
+
+use standalone;
+use interactive;
+use common;
+
+#- I18N.
+push @::textdomains, 'drakwizard';
+
+$::isWizard = 1;
+$::Wizard_no_previous = 1;
+$::Wizard_title = "Drakwizard";
+$::Wiz_dir = '/usr/share/wizards/';
+$::Wiz_more_dir = "/etc/wizard.d/";
+my $in = interactive->vnew;
+
+my %all_wizards = (
+ apache2 => [ 'Apache', N("Apache2 web server"), { ver => 2 } ],
+# samba => [ 'Samba', N("Samba server") ],
+# sambashare => [ 'Sambashare', N("Manage Samba share") ],
+# sambaprint => [ 'Sambaprint', N("Manage Samba print") ], # user should use draksambashare
+# postfix => [ 'Postfix', N("Mail server") ],
+# if_(member('proxy_wizard', all($::Wiz_dir)),
+# nisautofs => [ 'Nisautofs', N("NIS server autofs map") ],
+# installsrv => [ 'Installsrv', N("Linux Install server") ],
+# ldap => [ 'Ldap', N("ldap server") ],
+ squid => [ 'Squid', N("Proxy") ],
+ sshd => [ 'Sshd', N("OpenSSH daemon configuration") ],
+ ntp => [ 'Ntp', N("Time server") ],
+ dhcp => [ 'Dhcp', N("DHCP server") ],
+ bind => [ 'Bind', N("DNS server") ],
+# inn => [ 'Inn', N("News server") ],
+# nfs => [ 'NFS', N("NFS server") ],
+# kolab => [ 'Kolab', N("Kolab server") ],
+ proftpd => [ 'Proftpd', N("FTP server") ],
+);
+
+foreach my $file (glob_("$::Wiz_more_dir/*.conf"))
+{
+ next unless -f $file;
+ my %tmp=getVarsFromSh($file);
+ $all_wizards{lc($file)} = [ $tmp{NAME}, $tmp{DESCRIPTION} ];
+}
+
+@ARGV = grep { ! /^--/ } @ARGV;
+if (!defined($all_wizards{$ARGV[0]})) {
+ $in->ask_from(
+ N("Drakwizard wizard selection"),
+ N("Please select a wizard"),
+ [ { val => \$ARGV[0], list => [ sort { $all_wizards{$a}[1] cmp $all_wizards{$b}[1] } keys %all_wizards ], format => sub { $all_wizards{$_[0]}[1] } } ]
+ );
+ push @ARGV, @{$all_wizards{$ARGV[0]}}[0,2];
+}
+
+require "MDK/Wizard/$all_wizards{$ARGV[0]}[0].pm";
+
+my ($wiz, $err) = "MDK::Wizard::$all_wizards{$ARGV[0]}[0]"->new($all_wizards{$ARGV[0]}[2]);
+if ($err) {
+ $::Wizard_finished = 1;
+ $in->ask_okcancel(N("Error"), translate($err));
+ $in->exit;
+}
+
+my $wizard = wizards->new($wiz);
+$wizard->safe_process($in);
+$in->exit;