doku
[svn42.git] / old-door-deamon / checkcard.pl.bak
1 #!/usr/bin/perl
2
3 print `/root/ledoff`;
4 my %validcards;
5
6 while (<>)
7
8   my ($cardid,$name)= split /\s+/,$_;
9   $validcards{$cardid}=$name;
10 };
11
12
13 my $logfile;
14
15 open($logfile,'>>/var/log/tuer.log');
16
17 my $tuer=0;
18 while (sleep 3)
19 {
20   my $card=`/usr/bin/opensc-tool --serial 2>/dev/null`;
21   $card =~ s/[^0-9A-F]//g; 
22   $card = substr($card,0,32);
23   next if not $card;
24   if ($validcards{$card})
25   {
26     $tuer = not $tuer;
27     if ($tuer)
28     {
29       print `/root/ledon`;
30       system('cat /var/www/indexopen.html > /var/www/index.html');
31       print $logfile localtime()." ".$validcards{$card}." hat die Tuer geoeffnet\n";
32     } else {
33       print `/root/ledoff`;
34       system('cat /var/www/indexclosed.html > /var/www/index.html');
35       print $logfile localtime()." ".$validcards{$card} ." hat die Tuer verschlossen\n";
36     }
37   } else {
38     print "Card did not match $card\n";
39   }
40 }