#! /usr/bin/perl -w my $date = localtime; $path="/home/bus_act/tmp/pinwatch"; makeLogs(); sub main{ system("clear"); print "\n\t\t\tWelcome to pinwatch v1.\n"; print "\t\t\t=======================\n\n"; print "NOTICE: Press ^C to exit program at any time.\n"; $loop = 0; do{ if($loop eq 0) { print "Press \"N\" to add a new entry or press \"V\" to view the logs: "; } else { print "*NOTICE* : You must press either \"N\" or \"V\" to continue: "; }; chomp($choice = ); $choice =~ tr/A-Z/a-z/; $loop++; } while ($choice ne "n" && $choice ne "v"); if ($choice eq "n") { addEntry(); } if ($choice eq "v") { viewLog(); } } sub addEntry { for($i=0; $i<65 ; $i++) { print "="; } print "\n"; print "\nNOTICE: Log entries use this format, EMPLOYEE BUTTON MANAGER.\n"; print "1) Add name of EMPLOYEE to recieve button: "; chomp($employee=) ; $employee =~ tr/A-Z/a-z/; print "2) Add type of BUTTON recieved: "; chomp($button=) ; $button =~ tr/A-Z/a-z/; print "3) Add name of MANAGER to give button: "; chomp($manager=) ; $manager =~ tr/A-Z/a-z/; open(MFILE, "$path/managers.log") || die "Error: can't open managers file: $!"; $name=0; while (defined ($mlist = )){ chomp($mlist); if($manager eq $mlist) { $name=1; } } close(MFILE) || die "Error: can't close managers file: $!"; if ($name ne 1) { print "\nThe name \"$manager\" was not found in the list. Press enter to try again: "; $foo = ; main(); } else { open (E_FILE, ">> $path/employee.log") || die "Error: can't open employee.log: $!"; print (E_FILE "$employee recieved the $button button from $manager : entry created on $date\n"); close (E_FILE) || die "Can't close the employee file: $!"; open (M_FILE, ">> $path/$manager.log") || die "Error: can't open $manager.log: $!"; print (M_FILE "$manager gave $employee the $button button : entry created on $date\n"); close (M_FILE) || die "Can't close the $manager file: $!"; main(); } } sub viewLog { for($i=0; $i<65 ; $i++) { print"="; } print "\n"; print "\nDo you want to view the employee or manager log file?\n"; $loop = 0; do{ if($loop eq 0) { print "Press \"E\" for employee or \"M\" for manager: "; } else { print "*NOTICE* : You must press either \"E\" or \"M\" to continue: "; }; chomp($choice = ); $choice =~ tr/A-Z/a-z/; $loop++; } while ($choice ne "e" && $choice ne "m"); if ($choice eq "e") { system("gedit $path/employee.log"); main(); } if ($choice eq "m") { print "\nTo view managers file enter their name (type \"list\" for names).\n"; print "To add or delete names from the managers list type \"edit\": "; chomp($manager = ) ; $manager =~ tr/A-Z/a-z/; if ($manager eq "edit"){ system("gedit $path/managers.log"); makeLogs(); } if ($manager eq "list"){ open (MFILE_1, "$path/managers.log") || die "Error: can't open managers file: $!"; @man_list = (); print "Managers:\n",@man_list,"\n"; close(MFILE_1) || die "Error: can't close managers file: $!"; print "To view managers file enter their name: "; chomp($manager = ) ; $manager =~ tr/A-Z/a-z/; } open(MFILE_2, "$path/managers.log") || die "Error: can't open managers file: $!"; $name=0; while (defined ($mlist = )){ chomp($mlist); if($manager eq $mlist) { $name=1; } } close(MFILE_2) || die "Error: can't close managers file: $!"; if ($name ne 1) { print "\nThe name \"$manager\" was not found in the list. Press enter to try again: "; $foo = ; viewLog(); } else { system("gedit $path/$manager.log"); main(); } } } sub makeLogs{ open(MFILE_3, "$path/managers.log") || die "Error: can't open managers file: $!"; while (defined ($mlist = )){ chomp($mlist); $mlist =~ tr/A-Z/a-z/; system("touch $path/$mlist.log"); } close(MFILE_3) || die "Error: can't close managers file: $!"; system("touch $path/employee.log"); main(); }