Handle hostnames with upper-case letters
[webmin.git] / vgetty / edit_vgetty.cgi
1 #!/usr/local/bin/perl
2 # edit_vgetty.cgi
3 # Display the vgetty configuration for some serial port
4
5 require './vgetty-lib.pl';
6 &ReadParse();
7 &foreign_require("inittab", "inittab-lib.pl");
8
9 if ($in{'new'}) {
10         &ui_print_header(undef, $text{'vgetty_create'}, "");
11         }
12 else {
13         &ui_print_header(undef, $text{'vgetty_edit'}, "");
14         @vgi = &vgetty_inittabs();
15         ($init) = grep { $_->{'id'} eq $in{'id'} } @vgi;
16         }
17
18 print "<form action=save_vgetty.cgi>\n";
19 print "<input type=hidden name=new value='$in{'new'}'>\n";
20 print "<input type=hidden name=id value='$in{'id'}'>\n";
21
22 print "<table border width=100%>\n";
23 print "<tr $tb> <td><b>$text{'vgetty_header'}</b></td> </tr>\n";
24 print "<tr $cb> <td><table width=100%>\n";
25
26 print "<tr> <td><b>$text{'vgetty_tty'}</b></td>\n";
27 print "<td colspan=3><select name=tty>\n";
28 $found++ if ($in{'new'});
29 opendir(DEV, "/dev");
30 foreach $t (sort { "$a$b" =~ /^ttyS(\d+)ttyS(\d+)$/ ? $1 <=> $2 : 0 }
31                  readdir(DEV)) {
32         if ($t =~ /^ttyS(\d+)$/) {
33                 local $f = $init->{'tty'} eq $t || $init->{'tty'} eq "/dev/$t";
34                 printf "<option value=%s %s>%s\n",
35                         $t, $f ? "selected" : "", &text('vgetty_ts', $1+1);
36                 $found++ if ($f);
37                 }
38         }
39 closedir(DEV);
40 printf "<option value='' %s>%s\n",
41         $found ? "" : "selected", $text{'vgetty_other'};
42 print "</select>\n";
43 printf "<input name=other size=20 value='%s'> %s</td> </tr>\n",
44         $found ? "" : $init->{'tty'}, &file_chooser_button("other");
45
46 @conf = &get_config();
47 $rings = &find_value("rings", \@conf);
48 if ($rings =~ /^\//) {
49         $tf = $in{'new'} ? undef : &tty_opt_file($rings, $init->{'tty'});
50         print "<tr> <td><b>$text{'vgetty_rings'}</b></td>\n";
51         printf "<td><input type=radio name=rings_def value=1 %s> %s\n",
52                 -r $tf ? "" : "checked", $text{'vgetty_default'};
53         printf "<input type=radio name=rings_def value=0 %s> %s\n",
54                 -r $tf ? "checked" : "";
55         open(TF, $tf);
56         chop($rc = <TF>);
57         close(TF);
58         print "<input name=rings size=5 value='$rc'></td> </tr>\n";
59         }
60
61 $ans = &find_value("answer_mode", \@conf);
62 if ($ans =~ /^\//) {
63         $tf = $in{'new'} ? undef : &tty_opt_file($ans, $init->{'tty'});
64         print "<tr> <td><b>$text{'vgetty_ans'}</b></td>\n";
65         printf "<td><input type=radio name=ans_def value=1 %s> %s\n",
66                 -r $tf ? "" : "checked", $text{'vgetty_default'};
67         printf "<input type=radio name=ans_def value=0 %s> %s\n",
68                 -r $tf ? "checked" : "";
69         open(TF, $tf);
70         chop($am = <TF>);
71         close(TF);
72         print &answer_mode_input($am, "ans"),"</td> </tr>\n";
73         }
74
75 print "</table></td></tr></table>\n";
76 print "<table width=100%><tr>\n";
77 if ($in{'new'}) {
78         print "<td><input type=submit value='$text{'create'}'></td>\n";
79         }
80 else {
81         print "<td><input type=submit value='$text{'save'}'></td>\n";
82         print "<td align=right><input type=submit name=delete ",
83               "value='$text{'delete'}'></td>\n";
84         }
85 print "</table></form>\n";
86
87 &ui_print_footer("list_vgetty.cgi", $text{'vgetty_return'});
88