summaryrefslogtreecommitdiffstats
path: root/perl-install/proxy.pm
blob: 3d04a9513cd8956aa7d70f6f29298baddb9f3477 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package proxy;

use diagnostics;
use strict;
use run_program;
use common qw(:common :system :file);
use log;
use c;

my $config_file = "/usr/lib/wgetrc";

sub main {
    my ($prefix, $in, $install) = @_;
  begin:
    $::isWizard = 1;
    $::Wizard_no_previous = 1;
    $in->ask_okcancel(_("Proxy configuration"),
                      _("Welcome to the proxy configuration utility.\n\nHere, you'll be able to set up your http and ftp proxies\nwith or without login and password\n"
	               ), 1) or quit_global($in, 0);
  
    my $proxy_cfg = {};

    # grab current config
    open F, $config_file;
    while (<F>)
    {
      if (/http_proxy = (http:.*):(.*)/)
      {
        $proxy_cfg->{http_url} = $1;
	$proxy_cfg->{http_port} = $2;
      }
      if (/ftp_proxy = (ftp:.*):(.*)/)
      {
        $proxy_cfg->{ftp_url} = $1;
	$proxy_cfg->{ftp_port} = $2;
      }
      /http_user = (.*)/ and $proxy_cfg->{login} = $1;
      /http_passwd = (.*)/ and $proxy_cfg->{passwd} = $1;
    }
    
    # http proxy
    $in->ask_from_entries_refH(_("Proxy configuration"),
                               _("Please fill in the http proxy informations"),
         [
           { label => _("URL"), val => \$proxy_cfg->{http_url} },
           { label => _("port"), val => \$proxy_cfg->{http_port} }
	 ]
    );
    undef $::Wizard_no_previous;
    # ftp proxy
    $in->ask_from_entries_refH(_("Proxy configuration"),
                               _("Please fill in the ftp proxy informations"),
         [
           { label => _("URL"), val => \$proxy_cfg->{ftp_url} },
           { label => _("port"), val => \$proxy_cfg->{ftp_port} }
	 ]
    );
    # proxy login/passwd
    $in->ask_from_entries_refH(_("Proxy configuration"),
                               _("Please enter proxy login and password, if any.\nLeave it blank if you don't want login/passwd"),
         [
	   { label => _("login"), val => \$proxy_cfg->{login} },
	   { label => _("password"), val => \$proxy_cfg->{passwd} }
	 ]
    );
    
    # save config
    substInFile { s/^http_proxy.*\n//; $_ .= "http_proxy = $proxy_cfg->{http_url}:$proxy_cfg->{http_port}\n" if eof } $config_file;
    substInFile { s/^ftp_proxy.*\n//; $_ .= "ftp_proxy = $proxy_cfg->{ftp_url}:$proxy_cfg->{ftp_port}\n" if eof } $config_file;
    if ($proxy_cfg->{login})
    {
      substInFile { s/^http_user.*\n//; $_ .= "http_user = $proxy_cfg->{login}\n" if eof } $config_file;
      substInFile { s/^http_passwd.*\n//; $_ .= "http_passwd = $proxy_cfg->{passwd}\n" if eof } $config_file;
    }
    log::l("[drakproxy] Installation complete, exiting\n");
}

#---------------------------------------------
#                WONDERFULL pad
#---------------------------------------------
1;