add alarm to execute "sudo -v" periodly
authorYigang Wen <yigangx.wen@intel.com>
Fri, 12 Oct 2012 09:43:10 +0000 (17:43 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Tue, 16 Oct 2012 23:09:50 +0000 (07:09 +0800)
Avoid inputing twice password when building a package last long
time, in main thread add alarm to execute "sudo -v" periodly.
fix #460

depanneur

index dc49453..8bbf70f 100755 (executable)
--- a/depanneur
+++ b/depanneur
@@ -64,6 +64,9 @@ use Build::Rpm;
 use Data::Dumper;
 use File::Basename;
 
+# "sudo -v" period
+use constant SUDOV_PERIOD => 300;
+
 my @threads;
 my @exclude = ();
 my @repos= ();
@@ -1109,6 +1112,16 @@ $SIG{'INT'} = $SIG{'TERM'} = sub {
         $TERM=1;
 };
 
+$SIG{'ALRM'} = sub {
+    {
+        lock ($SUDOV_LOCK);
+        my_system("sudo -v");
+    }
+    alarm(SUDOV_PERIOD);
+};
+
+alarm(SUDOV_PERIOD);
+
 while (! $TERM) {
     my @order = ();
     my @o = ();