- added some missing files from old-door-daemon
[svn42.git] / old-door-deamon / checkcard.pl
diff --git a/old-door-deamon/checkcard.pl b/old-door-deamon/checkcard.pl
new file mode 100755 (executable)
index 0000000..f110cd0
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl -w
+
+my $fifofile = "/root/door_cmd.fifo";
+my %validcards;
+
+while (<>)
+{ 
+  my ($cardid,$name)= split /\s+/,$_;
+  $validcards{$cardid}=$name;
+};
+
+my $currentcard=0;
+while (sleep 1)
+{
+  my $card=`/usr/bin/opensc-tool --serial 2>/dev/null`;
+  $card =~ s/[^0-9A-F]//g; 
+  $card = substr($card,0,32);
+  if ($card eq $currentcard)
+       { next; }
+  else 
+       {$currentcard=$card;}
+  if ($validcards{$card})
+  {
+    if( -p $fifofile)
+    {
+      open(my $fifo,"> $fifofile");
+      print $fifo "toggle "."Card ".$validcards{$card}."\n";
+      close($fifo);  
+    }
+  } else {
+    print "Card did not match $card\n";
+  }
+}