diff options
author | Florent Villard <warly@mandriva.com> | 2003-10-20 10:51:59 +0000 |
---|---|---|
committer | Florent Villard <warly@mandriva.com> | 2003-10-20 10:51:59 +0000 |
commit | 306951e28791b261f894a8b71255b4c45d105661 (patch) | |
tree | 9fa88f156c8a6fa200986dc52b42ab43047e81f6 /samba_wizard/scripts | |
parent | eacbbd06a147d56f4edfaf008cc667b55577b3be (diff) | |
download | drakwizard-306951e28791b261f894a8b71255b4c45d105661.tar drakwizard-306951e28791b261f894a8b71255b4c45d105661.tar.gz drakwizard-306951e28791b261f894a8b71255b4c45d105661.tar.bz2 drakwizard-306951e28791b261f894a8b71255b4c45d105661.tar.xz drakwizard-306951e28791b261f894a8b71255b4c45d105661.zip |
change copyright
remove old xml related files
Diffstat (limited to 'samba_wizard/scripts')
-rwxr-xr-x | samba_wizard/scripts/Smbconf.pm | 339 |
1 files changed, 0 insertions, 339 deletions
diff --git a/samba_wizard/scripts/Smbconf.pm b/samba_wizard/scripts/Smbconf.pm deleted file mode 100755 index 253b9c0c..00000000 --- a/samba_wizard/scripts/Smbconf.pm +++ /dev/null @@ -1,339 +0,0 @@ -#!/usr/bin/perl - -# Drakwizard - -# Copyright (C) 2002 MandrakeSoft Arnaud Desmons (adesmons@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. - -package Smbconf; -use lib '/usr/lib/libDrakX'; -require "__WIZ_HOME__/common/scripts/Vareqval.pm"; -require "__WIZ_HOME__/common/scripts/IFCFG.pm"; -use MDK::Common; -use strict; -use services; -use Data::Dumper; - -# All possibilies in the config file must be precedeed by ";" -# This script can just comment, uncomment or/and change values -# but can not add anything. -# so one variable cannot be commented and not in the same file. - -my $o = IFCFG->new(); - -sub check { - $> and return 1; - $o->is_dhcp() and return 2; - 0; -} - -sub check_services { - $ENV{wiz_do_homes} and return 3; - $ENV{wiz_do_file_sharing} and return 2; - $ENV{wiz_do_printer_sharing} and return 1; - 0; -} - -sub check_dir { - -d ($ENV{wiz_dir}) and return 10; - 1; -} - -# the "__" before comment is to avoid conflicts with possible "comment" variable -# for variables value is in value key and comment idem (no risque of conflict) - -sub read_conf { - my $self = {}; - my ($file) = @_; - my $menu; - my @tab; - my %conf; - - open(FH, $file) or die "$! ($file)"; - while (<FH>) { - if (/^(\s*\;?\s*)\[(.*)\].*/) { - $menu = $2; - $conf{$menu}{__comment} = $1; - } - elsif (/^(?!\#)(\s*\;*\s*)(.*?)\s*=\s*(.*)\s*$/) { - $conf{$menu}{$2}{value} = $3; - $conf{$menu}{$2}{comment} = $1; - } - push @tab, $_; - } - $self->{conf} = \%conf; - $self->{tab} = \@tab; - bless $self; -} - -# we parse @tab to check for values in the struct. - -sub write_conf { - my $self = shift; - my ($file) = @_; - my $menu; - - open(FH, "> $file") or die "$!"; - foreach (@{$self->{tab}}) { - if (/^\s*\;?\s*\[(.*)\].*/) { - $menu = $1; - print FH "$self->{conf}->{$menu}{__comment}"."[$menu]\n"; - } - elsif (/^(?!\#)\s*\;*\s*(.*?)\s*=/) { - print FH "$self->{conf}->{$menu}{$1}{comment}"."$1" ." = ". "$self->{conf}->{$menu}{$1}{value}\n"; - } - else { - print FH $_; - } - } -} - -#section has the name of the printer -sub add_printer { - my $self = shift; - my ($printer) = @_; - - if (exists $self->{conf}->{$printer}) { - $self->comment_menu($printer, " "); - } - else { - $self->{conf}->{$printer}{printable}{comment} = " "; - $self->{conf}->{$printer}{printer}{comment} = " "; - push @{$self->{tab}}, "[$printer]\n"; - push @{$self->{tab}}, "printer = $printer\n"; - push @{$self->{tab}}, "printable = yes\n"; - $self->{conf}->{$printer}{printer}{value} = $printer; - $self->{conf}->{$printer}{printable}{value} = "yes"; - } -} - -sub list_printers { - my @list if 0; - - return @list if @list; - @list = sort grep /^(?!\#).*/, map { - my ($printer) = split(':', $_); - } cat_("/etc/printcap"); -} - - -sub check_users { - return 1 if $ENV{wiz_do_printer_sharing}; - 0; -} - -sub comment_menu { - my $self = shift; - my ($menu, $str) = @_; - - return if (!$menu or !exists $self->{conf}->{$menu}); - $self->{conf}->{$menu}{__comment} = $str; - foreach (keys %{$self->{conf}->{$menu}}) { - ($_ eq "__comment") and next; - $self->{conf}->{$menu}{$_}{comment} = $str; - } -} - -sub comment_var { - my $self = shift; - my ($menu, $var, $str) = @_; - - $self->{conf}->{$menu}{$var}{comment} = $str; -} - -sub chg_var { - my $self = shift; - my ($menu, $var, $str) = @_; - - $self->{conf}->{$menu}{$var}{value} = $str; -} - -# all or selected printers -sub printer_sharing { - my $self = shift; - - if ($ENV{wiz_all_printers}) { - $self->comment_menu("printers", " "); - foreach my $printer (keys (%::bool)) { - $self->comment_menu($printer, ";"); - } - } - else { - $self->comment_menu("printers", ";"); - foreach my $printer (keys (%::bool)) { - if (int($::bool{$printer})) { - $self->comment_menu($printer, " "); - $self->add_printer($printer); - } - else { - $self->comment_menu($printer, ";"); - } - } - } -} - -sub get_printers { - if ($ENV{wiz_do_printer_sharing}) { - my $string; - $ENV{wiz_all_printers} and return "all printers"; - foreach (keys (%::bool)) { - $string .= "$_, " if int($::bool{$_}); - } - "$string"; - } - else { - "disabled"; - } -} - -sub check_workgroup { - !$ENV{wiz_workgroup} and return 1; - 10; -} - -sub ask_acces { - 10; -} - -my $old = read_conf("/etc/samba/smb.conf"); - -sub get_write { - $old->{conf}->{public}{"write list"}{value}; -} - -sub get_read { - $old->{conf}->{public}{"read list"}{value}; -} - -sub check_banner { - !$ENV{wiz_banner} and return 1; - 10; -} - -sub get_workgroup { - $old->{conf}->{global}{workgroup}{value}; -} - -sub get_banner { - $old->{conf}->{global}{"server string"}{value}; -} - -sub ask_dir { - return 2 if $ENV{wiz_do_file_sharing}; - return 1 if $ENV{wiz_do_printer_sharing}; - 0; -} - -sub get_dir { - $old->{conf}->{public}{path}{value}; -} - -sub get_file_sharing { - return 0 if ($old->{conf}->{public}{__comment} =~ /\;|\#/); - 1; -} - -sub get_home_sharing { - return 0 if ($old->{conf}->{homes}{__comment} =~ /\;|\#/); - 1; -} - -sub get_netmask { - "192.168.100.1/255.255.255.0"; -} - -sub get_allow_host { - $old->{conf}->{global}{"hosts allow"}{value}; -} - -sub get_deny_host { - $old->{conf}->{global}{"hosts deny"}{value}; -} - -sub chk_level { -# if ($ENV{wiz_level} == 2) { -# $ENV{wiz_allow_allow} = "toto"; -# $ENV{wiz_allow_allow} = "toto"; -# } -# else { -# $ENV{wiz_hosts_deny} = "tata"; -# $ENV{wiz_hosts_deny} = "tata"; -# } -# if ($ENV{wiz_level} == 3) { -# $ENV{wiz_allow_allow} = "toto"; -# $ENV{wiz_allow_allow} = "toto"; -# } -# else { -# $ENV{wiz_hosts_deny} = "tata"; -# $ENV{wiz_hosts_deny} = "tata"; -# } - $ENV{wiz_level}; -} - -# remember one variable cannot be commented and not in the same file. -sub do_it { - my $file = "__WIZ_HOME__/samba_wizard/scripts/smb.conf.default"; - - my $conf = read_conf($file); - $conf->chg_var("global", "workgroup", $ENV{wiz_workgroup}); - $conf->chg_var("global", "server string", $ENV{wiz_banner}); - $conf->chg_var("public", "write list", $ENV{wiz_write_list}) if $ENV{wiz_do_file_sharing}; - $conf->chg_var("public", "read list", $ENV{wiz_read_list}) if $ENV{wiz_do_file_sharing}; - my $ip = $o->itf_get("IPADDR"); - if ($ENV{wiz_do_file_sharing}) { - standalone->explanations("Enabling $ENV{wiz_dir} samba file sharing"); - $conf->comment_menu("public", " "); - $conf->chg_var("public", "path", $ENV{wiz_dir}); - } - else { - standalone->explanations("Disabling samba file sharing"); - $conf->comment_menu("public", ";"); - } - if ($ENV{wiz_do_homes}) { - standalone->explanations("Enabling samba homes sharing"); - $conf->comment_menu("homes", " "); - } - else { - standalone->explanations("Disabling samba homes sharing"); - $conf->comment_menu("homes", ";"); - } - standalone->explanations("Samba deny $ENV{wiz_hosts_deny}"); - standalone->explanations("Samba allow $ENV{wiz_hosts_allow}"); -# $conf->chg_var("global", "hosts deny", $ENV{wiz_hosts_deny}); -# $conf->chg_var("global", "hosts allow", $ENV{wiz_hosts_allow}); - - if ($ENV{wiz_do_printer_sharing}) { - standalone->explanations("Enabling printer sharing"); - $conf->printer_sharing(); - } - else { - standalone->explanations("Disabling printer sharing"); - foreach my $printer (keys (%::bool)) { - if (!int($::bool{$printer})) { - $conf->comment_menu("$printer", ";"); - } - } - $conf->comment_menu("printers", ";"); - } - $conf->write_conf("/etc/samba/smb.conf"); - if (services::is_service_running('smb')) { - services::restart('smb') - } else { - services::start('smb') - } - 10; -} -1; |