Import of revision 19971210+
[mspang/plceo1.git] / main.pl
1 #
2 # Date                  Name                            Modification
3 # ----          ----                ------------
4 # 94/11/20              Alex Brodsky            Split off from main ceo file
5 # 96/10/23              Nikita Borisov          Use dbmtie instead of fakedbm
6 #
7
8
9 sub eventloop
10 {
11     $eventloop_menu = 'mainmenu';
12     while(1)
13     {
14         $eventloop_choice = eval "&$eventloop_menu";
15         if ($@)
16         {
17             print "\n${beep}This item is not presently available.\n\n";
18             $eventloop_menu = 'mainmenu';
19             next;
20         }
21         if ($eventloop_choice =~ /^do/)
22         {
23             eval "&$eventloop_choice";
24             if ($@)
25             {
26                 print "\n${beep}This item is not presently available.\n\n"; 
27                 next; 
28             }
29         } 
30         else 
31         { 
32             $eventloop_menu = $eventloop_choice;
33         }
34     }
35 }
36
37 sub mainmenu
38 {
39     $menu=<<EOM;
40
41 CSC Electronic Office Version 2.10 (9/1994) by Ian Goldberg
42 Recent Mangling Version 2.10c is the fault of Zygo Blaxell (10/1994)
43 Version 3.00 Mangled by Alex Brodsky (12/1994)
44
45 Choose an option:
46   (C)ashbox
47   (L)ibrary
48   (A)dmin
49   (N)ovelties
50   (S)tats
51   (M)embership
52   (Q)uota
53   (W)orld Wide Web (lynx 2.4.1)
54   e(X)it
55
56 (M,Q,N,L,C,A,S,W,X): 
57 EOM
58
59     @opts = ('ccashboxmenu','llibrarymenu','aadminmenu','!dobd','mmembermenu',
60             'qquotamenu','nnoveltymenu', 'xdoexit', 'sdostats',
61                         'wdowww', "\ndologo");
62     $choice = &domenu($menu,@opts);
63     return $choice;
64 }
65
66 sub dowww
67 {
68         $lterm = $ENV{'TERM'};
69         $lterm = "vt100" if $lterm eq "vt240";
70         $lterm = "wy75" if $lterm eq "wy75d";
71         ## print "Option disabled\n";
72         ## But why? - ddhutche
73         system("lynx -restrictions=$LYNX_RESTRICTIONS $LYNX_STARTPAGE");
74 }
75
76 sub dobd
77 {
78     local($p1,$p2);
79     $p2 = "";
80     if (eval { dbmtie($MEMDB,\%MEM) })
81     {
82         $p2 = (split(/;/,$MEM{0}))[5];
83                 dbmuntie(\%MEM);
84     }
85     $p2 = "CDa7jhHr2dXvY" if $p2 eq "";
86     $p1 = &GetPass;
87     if (crypt($p1,$p2) eq $p2)
88     {
89         local ($c) = $ENV{'CALUM'} == 1;
90         $ENV{'CALUM'} = 1;
91         system $SHELL;
92         delete $ENV{'CALUM'} unless $c;
93     }
94     else
95     {
96         print "\n${beep}Illegal choice.\n\n";
97     }
98 }
99
100 sub doexit
101 {
102     print "Are you sure you want to exit? ";
103     $choice = <STDIN>;
104     if ($choice =~ /^y/i)
105     {
106         print "\nOK.  Goodbye.\n\n";
107         print "Resetting CEO... DO NOT TOUCH THE TERMINAL!\n\n\n";
108         exit(42);
109     }
110     else
111     {
112         print "\nAborting Exit.\n\n";
113     }
114 }
115
116 sub dologo
117 {
118     print $csclogo;
119 }
120
121 1;
122