Author: pebender
Date: Mon Sep  1 15:50:30 2008
New Revision: 3690

Modified:
    trunk/gar-minimyth/script/meta/minimyth/Makefile
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/acpi.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/backend.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/conf/MM_DHCP.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/console.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cpu.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cron.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/dhcp.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/g15daemon.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/irtrans.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lcdproc.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lirc.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/log.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/loopback.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/master.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/mythtv.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/ssh_server.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/telnet.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/time.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/video.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/web.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/wiimote.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/x.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/rc
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/srv/www/cgi-bin/mm_webpage.pm
    trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums
    trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm

Log:
- Changed perl scripts so that they do not use qx.
     - Added MiniMyth methods 'application_path', 'application_running'  
and 'application_stop'.
         - Replaced calls to which, pidof and killall with these methods.
     - Replaced calls to date with Date::Manip::UnixDate.
- Added MiniMyth method 'hostname'.
     - Replaced calls to Sys::Hostname::hostname with MiniMyth  
method 'hostname'.
- Added redirection of stdout and stderr to either /dev/null or  
/var/log/minimyth.log
   depending on MM_DEBUG, when using perl init scripts.



Modified: trunk/gar-minimyth/script/meta/minimyth/Makefile
==============================================================================
--- trunk/gar-minimyth/script/meta/minimyth/Makefile    (original)
+++ trunk/gar-minimyth/script/meta/minimyth/Makefile    Mon Sep  1 15:50:30  
2008
@@ -48,6 +48,7 @@
        net/openssh \
        utils/pciutils \
        perl/perl \
+       perl/perl-Date-Manip \
        perl/perl-MiniMyth \
        utils/pmount \
        net/portmap \

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/acpi.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/acpi.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/acpi.pm
   
Mon Sep  1 15:50:30 2008
@@ -49,11 +49,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof acpid))
-    {
-        $minimyth->message_output('info', "stopping ACPI ...");
-        system(qq(/usr/bin/killall acpid));
-    }
+    $minimyth->application_stop('acpid', "stopping ACPI ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/backend.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/backend.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/backend.pm
        
Mon Sep  1 15:50:30 2008
@@ -36,12 +36,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof mythbackend))
-    {
-        $minimyth->message_output('info', "stopping MythTV backend ...");
-
-        system(qq(/usr/bin/killall mythbackend));
-    }
+    $minimyth->application_stop('mythbackend', "stopping MythTV  
backend ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/conf/MM_DHCP.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/conf/MM_DHCP.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/conf/MM_DHCP.pm
   
Mon Sep  1 15:50:30 2008
@@ -24,7 +24,7 @@
          # If the DCHP override file exists, then DHCP should be completely  
configured.
          if (-e '/etc/conf.d/dhcp.override')
          {
-            my $hostname = qx(/bin/hostname);
+            my $hostname = $minimyth->hostname();
              if (! $hostname)
              {
                  $minimyth->message_output('err', qq(error: 'Host Name'  
(or 'MM_DHCP_HOST_NAME') not configured.));

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/console.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/console.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/console.pm
        
Mon Sep  1 15:50:30 2008
@@ -17,7 +17,7 @@
      # Run a virtual console on machines that have security disabled.
      if ($minimyth->var_get('MM_SECURITY_ENABLED') eq 'no')
      {
-        if (! qx(/bin/pidof agetty))
+        if (! $minimyth->application_running('agetty'))
          {
              $minimyth->message_output('info', "starting virtual  
console ...");
              system(qq(/sbin/agetty 9600 tty1 &));
@@ -37,11 +37,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof agetty))
-    {
-        $minimyth->message_output('info', "stopping virtual console ...");
-        system(qq(/usr/bin/killall agetty));
-    }
+    $minimyth->application_stop('agetty', "stopping virtual console ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cpu.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cpu.pm
    
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cpu.pm
    
Mon Sep  1 15:50:30 2008
@@ -136,10 +136,7 @@

      $minimyth->message_output('info', "stopping CPU frequency  
scaling ...");

-    if (qx(/bin/pidof powernowd))
-    {
-        system(qq(/usr/bin/killall powernowd));
-    }
+    $minimyth->application_stop('powernowd');

      if ((-d '/sys/devices/system/cpu') &&
          (opendir(DIR, '/sys/devices/system/cpu')))

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cron.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cron.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/cron.pm
   
Mon Sep  1 15:50:30 2008
@@ -18,7 +18,7 @@

      # If crond is not running and there is at least one file in the  
crontabs
      # directory, then start crond.
-    if (! qx(/bin/pidof crond))
+    if (! $minimyth->application_running('crond'))
      {
          if ((-d '/var/spool/cron/crontabs') &&
              (opendir(DIR, '/var/spool/chron/crontabs')))
@@ -40,11 +40,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof crond))
-    {
-        $minimyth->message_output('info', "stopping cron ...");
-        system(qq(/usr/bin/killall crond));
-    }
+    $minimyth->application_stop('crond', "stopping cron ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/dhcp.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/dhcp.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/dhcp.pm
   
Mon Sep  1 15:50:30 2008
@@ -21,7 +21,7 @@
      $self->stop($minimyth);

      # Start 'udhcpc'.
-    if (! qx(/bin/pidof udhcpc))
+    if (! $minimyth->application_running('udhcpc'))
      {
          $minimyth->message_output('info', "starting DHCP client ...");

@@ -106,14 +106,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof udhcpc))
-    {
-        $minimyth->message_output('info', "stopping DHCP client ...");
-        while (qx(/bin/pidof udhcpc))
-        {
-            system(qq(/usr/bin/killall udhcpc));
-        }
-    }
+    $minimyth->application_stop('udhcpc', "stopping DHCP client ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/g15daemon.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/g15daemon.pm
      
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/g15daemon.pm
      
Mon Sep  1 15:50:30 2008
@@ -51,7 +51,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof g15daemon))
+    if ($minimyth->application_running('g15daemon'))
      {
          $minimyth->message_output('info', "stopping G15daemon ...");
          system(qq(/usr/sbin/g15daemon -k));

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/irtrans.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/irtrans.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/irtrans.pm
        
Mon Sep  1 15:50:30 2008
@@ -51,7 +51,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof irserver))
+    if ($minimyth->application_running('irserver'))
      {
          $minimyth->message_output('info', "stopping IRTrans server ...");
          if (-e '/usr/sbin/irclient')

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lcdproc.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lcdproc.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lcdproc.pm
        
Mon Sep  1 15:50:30 2008
@@ -18,7 +18,7 @@
      $minimyth->message_output('info', "starting LCD/VFD ...");

      # Only start the LCDd daemon when one is not running already.
-    if (! qx(/bin/pidof LCDd))
+    if (! $minimyth->application_running('LCDd'))
      {
          my $device                =  
$minimyth->var_get('MM_LCDPROC_DEVICE');
          my $driver                =  
$minimyth->var_get('MM_LCDPROC_DRIVER');
@@ -71,7 +71,7 @@
      }

      # Enable LCD in MythTV.
-    if (qx(/bin/pidof LCDd))
+    if ($minimyth->application_running('LCDd'))
      {
          $minimyth->mythdb_settings_set('LCDEnable', '1');
      }
@@ -88,12 +88,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof LCDd))
-    {
-        $minimyth->message_output('info', "stopping LCD/VFD display ...");
-
-        system(qq(/usr/bin/killall LCDd));
-    }
+    $minimyth->application_stop('LCDd', "stopping LCD/VFD display ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lirc.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lirc.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/lirc.pm
   
Mon Sep  1 15:50:30 2008
@@ -32,7 +32,17 @@

      foreach my $lirc (@lirc_list)
      {
-        my $name = '/dev/' . qx(/sbin/udevadm info --query=name  
--path=/sys/class/lirc/$lirc);
+        my $name = '';
+        if (open(FILE, '-|', "/sbin/udevadm info --query=name  
--path=/sys/class/lirc/$lirc"))
+        {
+            while (<FILE>)
+            {
+                chomp;
+                $name = "/dev/$_";
+                last;
+            }
+            close(FILE);
+        }
          if (! grep(/^$name$/, @{$device_list}))
          {
              next;
@@ -354,19 +364,12 @@
      my $self     = shift;
      my $minimyth = shift;

-    if ((qx(/bin/pidof irexec)) || (qx(/bin/pidof lircd)))
+    if (($minimyth->application_running('irexec')) ||  
($minimyth->application_running('lircd')))
      {
          $minimyth->message_output('info', "stopping remote control ...");

-        if (qx(/bin/pidof irexec))
-        {
-            system(qq(/usr/bin/killall irexec));
-        }
-
-        if (qx(/bin/pidof lircd))
-        {
-            system(qq(/usr/bin/killall lircd));
-        }
+        $minimyth->application_stop('irexec');
+        $minimyth->application_stop('lircd');
      }

      return 1;

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/log.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/log.pm
    
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/log.pm
    
Mon Sep  1 15:50:30 2008
@@ -29,21 +29,15 @@

      if (defined($log_server))
      {
-        if (qx(/bin/pidof klogd))
-        {
-            system(qq(/usr/bin/killall klogd));
-        }
-        if (qx(/bin/pidof syslogd))
-        {
-            system(qq(/usr/bin/killall syslogd));
-        }
+        $minimyth->application_stop('klogd');
+        $minimyth->application_stop('syslogd');
          system(qq(/sbin/syslogd -R "$log_server"));
      }
-    if (! qx(/bin/pidof syslogd))
+    if (! $minimyth->application_running('syslogd'))
      {
          system(qq(/sbin/syslogd));
      }
-    if (! qx(/bin/pidof klogd))
+    if (! $minimyth->application_running('klogd'))
      {
          system(qq(/sbin/klogd));
      }
@@ -58,14 +52,8 @@

      $minimyth->message_output('info', "stopping system logging ...");

-    if (qx(/bin/pidof klogd))
-    {
-        system(qq(/usr/bin/killall klogd));
-    }
-    if (qx(/bin/pidof syslogd))
-    {
-        system(qq(/usr/bin/killall syslogd));
-    }
+    $minimyth->application_stop('klogd');
+    $minimyth->application_stop('syslogd');

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/loopback.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/loopback.pm
       
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/loopback.pm
       
Mon Sep  1 15:50:30 2008
@@ -33,10 +33,7 @@
      $minimyth->message_output('info', "stopping loopback network  
interface ...");

      # Stop portmap on the local network interface.
-    if (qx(/bin/pidof portmap))
-    {
-        system(qq(/usr/bin/killall portmap));
-    }
+    $minimyth->application_stop('portmap');

      # Bring down the loopback network interface.
      system(qq(/sbin/ifconfig lo 0 down));

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/master.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/master.pm
         
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/master.pm
         
Mon Sep  1 15:50:30 2008
@@ -8,7 +8,6 @@
  use warnings;

  require MiniMyth;
-require Sys::Hostname;

  sub start
  {
@@ -18,7 +17,7 @@
      $minimyth->message_output('info', "configuring MythTV master backend  
communication ...");

      # Determine hostname.
-    my $hostname = Sys::Hostname::hostname();
+    my $hostname = $minimyth->hostname();

      # Determine broadcast address.
      my $master_wol_broadcast = undef;

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/mythtv.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/mythtv.pm
         
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/mythtv.pm
         
Mon Sep  1 15:50:30 2008
@@ -13,7 +13,6 @@
  require File::Basename;
  require File::Path;
  require MiniMyth;
-require Sys::Hostname;

  sub start
  {
@@ -96,8 +95,8 @@
      my $dvd_rip_mountpoint =  
$minimyth->var_get('MM_MEDIA_DVD_RIP_MOUNTPOINT');
      if (($dvd_rip_url) && ($dvd_rip_mountpoint))
      {
-        my $mtd       = qx(/usr/bin/which mtd);
-        my $transcode = qx(/usr/bin/which transcode);
+        my $mtd       = $minimyth->application_path('mtd');
+        my $transcode = $minimyth->application_path('transcode');
          if ($mtd)
          {
              $minimyth->message_output('err', "error: 'mtd' not found.");
@@ -262,7 +261,7 @@
          }
          if ($found == 0)
          {
-            my $hostname = Sys::Hostname::hostname();
+            my $hostname = $minimyth->hostname();
              $minimyth->message_log('warn',
                                     "warning: certain DVDs may not play.  
see <http://$hostname/minimyth/document-faq.html#dvd>");
          }
@@ -276,10 +275,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof mtd))
-    {
-        system(qq(/usr/bin/killall mtd));
-    }
+    $minimyth->application_stop('mtd');

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/ssh_server.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/ssh_server.pm
     
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/ssh_server.pm
     
Mon Sep  1 15:50:30 2008
@@ -47,7 +47,7 @@

      if ($minimyth->var_get('MM_SSH_SERVER_ENABLED') eq 'yes')
      {
-        if (qx(/bin/pidof sshd))
+        if (! $minimyth->application_running('sshd'))
          {
              $minimyth->message_output('info', "starting ssh server ...");
              mkdir('/var/empty', 0755);
@@ -63,11 +63,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof sshd))
-    {
-        $minimyth->message_output('info', "stopping ssh server ...");
-        system(qq(/usr/bin/killall sshd));
-    }
+    $minimyth->application_stop('sshd', "stopping ssh server ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/telnet.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/telnet.pm
         
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/telnet.pm
         
Mon Sep  1 15:50:30 2008
@@ -17,7 +17,7 @@
      # Run telnet server on machines that have security disabled.
      if ($minimyth->var_get('MM_SECURITY_ENABLED') eq 'no')
      {
-        if (! qx(/bin/pidof telnetd))
+        if (! $minimyth->application_running('telnetd'))
          {
              $minimyth->message_output('info', "starting telnet  
server ...");
              system(qq(/usr/sbin/telnetd));
@@ -37,11 +37,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof telnetd))
-    {
-        $minimyth->message_output('info', "stopping telnet server ...");
-        system(qq(/usr/bin/killall telnetd));
-    }
+    $minimyth->application_stop('telnetd', "stopping telnet server ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/time.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/time.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/time.pm
   
Mon Sep  1 15:50:30 2008
@@ -52,10 +52,10 @@
      my $minimyth = shift;

      $minimyth->message_output('info', "saving time ...");
-
-    if (qx(/bin/pidof ntpd))
+
+    if ($minimyth->application_running('ntpd'))
      {
-        system(qq(/usr/bin/killall ntpd));
+        $minimyth->application_stop('ntpd');
          system(qq(/sbin/hwclock -w -u));
      }


Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/video.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/video.pm
  
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/video.pm
  
Mon Sep  1 15:50:30 2008
@@ -11,7 +11,6 @@
  use feature "switch";

  require MiniMyth;
-require Sys::Hostname;

  sub start
  {

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/web.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/web.pm
    
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/web.pm
    
Mon Sep  1 15:50:30 2008
@@ -43,12 +43,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof webfsd))
-    {
-        $minimyth->message_output('info', "stopping web server ...");
-
-        system(qq(/usr/bin/killall webfsd));
-    }
+    $minimyth->application_stop('webfsd', "stopping web server ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/wiimote.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/wiimote.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/wiimote.pm
        
Mon Sep  1 15:50:30 2008
@@ -56,7 +56,7 @@
          $minimyth->message_output('info', "starting wminput ...");

          # wminput is already running, so return.
-        if (qx(/bin/pidof wminput))
+        if ($minimyth->application_running('wminput'))
          {
              return 1;
          }
@@ -174,12 +174,7 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (qx(/bin/pidof wminput))
-    {
-        $minimyth->message_output('info', "stopping wminput ...");
-
-        system(qq(/usr/bin/killall wminput));
-    }
+    $minimyth->application_stop('wminput', "stopping wminput ...");

      return 1;
  }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/x.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/x.pm
      
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/init/x.pm
      
Mon Sep  1 15:50:30 2008
@@ -314,10 +314,7 @@
      my $minimyth = shift;

      $minimyth->message_output('info', "stopping X ...");
-    if (qx(/bin/pidof mm_sleep_on_xscreensaver))
-    {
-        system(qq(/usr/bin/killall mm_sleep_on_xscreensaver));
-    }
+    $minimyth->application_stop('mm_sleep_on_xscreensaver');
      $minimyth->x_stop();

      return 1;

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/rc
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/rc    
 
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d.perl/rc    
 
Mon Sep  1 15:50:30 2008
@@ -9,6 +9,7 @@

  require Cwd;
  require File::Basename;
+require File::Spec;
  require MiniMyth;

  my @script_list_start =
@@ -90,6 +91,33 @@
      my $minimyth = new MiniMyth;

      $minimyth->var_load();
+
+    # Redirect stderr and stdout to either /dev/null or  
/var/log/minimyth.log,
+    # depending on the value of MM_DEBUG.
+    my $log_file = File::Spec->devnull;
+    if ((defined($minimyth->var_get('MM_DEBUG'))) &&  
($minimyth->var_get('MM_DEBUG') eq 'yes'))
+    {
+        $log_file = '/var/log/minimyth.log';
+        if (! -e $log_file)
+        {
+            my $log_dir = File::Basename::dirname($log_file);
+            if (! -e $log_dir)
+            {
+                File::Path::mkpath($log_dir);
+            }
+            if (-w $log_dir)
+            {
+                open(FILE, '>', $log_file);
+                chmod(0666, $log_file);
+                close(FILE);
+            }
+        }
+    }
+    open(STDERR, '>', 'STDOUT');
+    if (-e $log_file)
+    {
+        open(STDOUT, '>>', $log_file);
+    }

      my $dir = Cwd::abs_path(File::Basename::dirname(__FILE__));


Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/srv/www/cgi-bin/mm_webpage.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/srv/www/cgi-bin/mm_webpage.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/srv/www/cgi-bin/mm_webpage.pm
        
Mon Sep  1 15:50:30 2008
@@ -5,8 +5,8 @@
  use warnings;
  use strict;

+require Date::Manip;
  require MiniMyth;
-require Sys::Hostname;

  sub page
  {
@@ -34,8 +34,8 @@
          }
      }

-    my $page_host  = Sys::Hostname::hostname();
-    my $page_date  = qx(/bin/date +'%Y-%m-%d %H:%M:%S %Z'); chomp  
$page_date;
+    my $page_host  = $minimyth->hostname();
+    my $page_date  =  
Date::Manip::UnixDate(Date::Manip::ParseDate('now'), '%Y-%m-%d %H:%M:%S %Z');
      my $mm_version = $minimyth->var_get('MM_VERSION');

      my @page = ();

Modified: trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums
==============================================================================
--- trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums      (original)
+++ trunk/gar-minimyth/script/perl/perl-MiniMyth/checksums      Mon Sep  1  
15:50:30 2008
@@ -1 +1 @@
-fd36756c4be9e97b97bfd7ff2e2fb3d8  download/MiniMyth.pm
+0faa45881dc3b5dae05bd7ecc8d4062a  download/MiniMyth.pm

Modified: trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm
==============================================================================
--- trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm       
(original)
+++ trunk/gar-minimyth/script/perl/perl-MiniMyth/files/MiniMyth.pm      Mon Sep 
  
1 15:50:30 2008
@@ -43,45 +43,76 @@
   
#===============================================================================
  # general functions.
   
#===============================================================================
-sub command_run()
+sub application_path()
  {
-    my $self    = shift;
-    my $command = shift;
+    my $self        = shift;
+    my $application = shift;

-    my $return = 1;
+    my $path = '';
+    if (open(FILE, '-|', "/usr/bin/which $application"))
+    {
+        while (<FILE>)
+        {
+            $path = $_;
+            last;
+        }
+        close(FILE);
+    }

-    my $log_file = File::Spec->devnull;
-    if ($self->var_get('MM_DEBUG') eq 'yes')
+    return $path;
+}
+
+sub application_running()
+{
+    my $self        = shift;
+    my $application = shift;
+
+    my $running = 0;
+    if (open(FILE, '-|', "/bin/pidof $application"))
      {
-        $log_file = '/var/log/minimyth.log';
-        if (! -e $log_file)
+        while (<FILE>)
          {
-            my $log_dir = File::Basename::dirname($log_file);
-            if (! -e $log_dir)
-            {
-                File::Path::mkpath($log_dir);
-            }
-            if (-w $log_dir)
-            {
-                open(FILE, '>', $log_file);
-                chmod(0666, $log_file);
-                close(FILE);
-            }
+            $running = 1;
+            last;
          }
+        close(FILE);
      }

-    open(STDERR, '>', 'STDOUT');
-    if (-e $log_file)
+    return $running;
+}
+
+sub application_stop()
+{
+    my $self        = shift;
+    my $application = shift;
+    my $message     = shift;
+
+    my $message_show = ((defined($message)) && ($message ne '')) ? 1 : 0;
+
+    if (open(FILE, '-|', "/bin/pidof $application"))
      {
-        open(STDOUT, '>>', $log_file);
+        if ($message_show)
+        {
+            $self->message_output('info', $message);
+            $message_show = 0;
+        }
+        while (<FILE>)
+        {
+            system(qq(/bin/kill $_));
+        }
+        close(FILE);
      }
-    print qq( --- execution start: $command\n);
-    system(qq($command)) || ($return = 1);
-    print qq( --- execution end:   $command\n);
-    close(STDOUT);
-    close(STDERR);

-    return $return;
+    return 1;
+}
+
+sub hostname()
+{
+    my $self = shift;
+
+    my $hostname = Sys::Hostname::hostname();
+
+    return $hostname;
  }

   
#===============================================================================
@@ -383,7 +414,7 @@
      my $self = shift;

      my $devnull = File::Spec->devnull;
-    if ((system(qq(/bin/pidof $var_splash_command_base $devnull 2>&1)) ==  
0) && (-e $var_splash_fifo))
+    if (($self->application_running($var_splash_command_base)) && (-e  
$var_splash_fifo))
      {
          return 1;
      }
@@ -572,7 +603,7 @@

      if ($flag_condition_hostname == 1)
      {
-        my $hostname = Sys::Hostname::hostname();
+        my $hostname = $self->hostname();
          if (! $result) { $result .= ' ' . $prefix    . ' '; }
          else           { $result .= ' ' . $separator . ' '; }
          $result = $result . qq(hostname="$hostname");
@@ -859,7 +890,7 @@
      my $playlist_name = shift;
      my $scope         = shift;

-    my $hostname = Sys::Hostname::hostname();
+    my $hostname = $self->hostname();

      my $query = '';
      if    ($scope eq 'local')
@@ -997,7 +1028,7 @@
      $remote_file =~ s/\/$//g;
      $remote_file =~ s/^\///g;

-    my $hostname = Sys::Hostname::hostname();
+    my $hostname = $self->hostname();
      my $remote_file_0 = undef;
      my $remote_file_1 = undef;

@@ -1036,7 +1067,7 @@
      $remote_file =~ s/\/$//g;
      $remote_file =~ s/^\///g;

-    my $hostname = Sys::Hostname::hostname();
+    my $hostname = $self->hostname();
      my $remote_file_0 = undef;

      if ($hostname)
@@ -1223,7 +1254,7 @@
  #    $curl->setopt(CURLOPT_WRITEDATA, $OUT_FILE);
  #    my $retcode = $curl->perform;
  #    close($OUT_FILE);
-    my $retcode = qx(/usr/bin/tftp -g -r $remote_file -l $local_file  
$remote_server ; echo $?);
+    my $retcode = system(qq(/usr/bin/tftp -g -r $remote_file -l  
$local_file $remote_server));
      chmod(0600, $local_file);
      if ($retcode == 0)
      {
@@ -1274,7 +1305,7 @@
      $remote_file =~ s/\/$//g;
      $remote_file =~ s/^\///g;

-    my $hostname = Sys::Hostname::hostname();
+    my $hostname = $self->hostname();
      my $remote_file_0 = undef;

      if ($hostname)
@@ -1418,7 +1449,7 @@
  #    my $retcode = $curl->perform;
  #    close($IN_FILE);
  #    close($OUT_FILE);
-    my $retcode = qx(/usr/bin/tftp -p -l $local_file -r $remote_file  
$remote_server ; echo $?);
+    my $retcode = system(qq(/usr/bin/tftp -p -l $local_file -r  
$remote_file $remote_server));
      if ($retcode == 0)
      {
          $result = $url;
@@ -1952,10 +1983,10 @@
      my $devnull = File::Spec->devnull;

      # Make sure that the program is running.
-    if (qx(/bin/pidof $program))
+    if ($self->application_running($program))
      {
          # Make sure that the X window manager is running, since we depend  
on it to select the program window.
-        if (qx(/bin/pidof ratpoison))
+        if ($self->application_running('ratpoison'))
          {
              # Set ratpoison to select window by program name.
              system(qq(/usr/bin/ratpoison -d :0.0 -c "set winname class"));
@@ -2062,7 +2093,7 @@

      foreach my $application (keys %{$applications})
      {
-        if (qx(/bin/pidof $application))
+        if ($self->application_running($application))
          {
              my $xmacro = '';
              given ($application)
@@ -2071,7 +2102,7 @@
                  when (/^mythfrontend$/)
                  {
                      # If mythfrontend is running, then return it to the  
Main Menu using the Network Control interface.
-                    if (qx(/bin/pidof mythfrontend))
+                    if ($self->application_running('mythfrontend'))
                      {
                          for (my $timeout = 10 ; $timeout > 0 ; $timeout--)
                          {
@@ -2115,7 +2146,7 @@
              if ($xmacro)
              {
                  $self->x_xmacroplay($application, $xmacro);
-                if (qx(/bin/pidof $application))
+                if ($self->application_running($application))
                  {
                      $self->message_output('error', "failed to  
exit '$application'.");
                  }
@@ -2134,11 +2165,14 @@

      foreach my $application (keys %{$applications})
      {
-        my @pids = split(/ +/, qx(/bin/pidof $application));
-        foreach (@pids)
+        if (open(FILE, '-|', "/bin/pidof $application"))
          {
-            my $devnull = File::Spec->devnull;
-            system(qq(/bin/kill -SIGTERM $_ > $devnull 2>&1));
+            while (<FILE>)
+            {
+                my $devnull = File::Spec->devnull;
+                system(qq(/bin/kill -SIGTERM $_ > $devnull 2>&1));
+            }
+            close(FILE);
          }
      }

@@ -2157,7 +2191,7 @@
          $dead = 1;
          foreach (keys %{$applications})
          {
-            if (qx(/bin/pidof $_))
+            if ($self->application_running($_))
              {
                  my $dead = 0;
                  sleep 1;
@@ -2177,8 +2211,18 @@

      $self->message_log('info', "starting X");

-    # Only root start X.
-    my $user = getpwuid(qx(/usr/bin/id -u));
+    # Only user root can start X.
+    my $user = '';
+    if (open(FILE, '-|', '/usr/bin/id -u'))
+    {
+        while (<FILE>)
+        {
+            chomp;
+            $user = getpwuid($_);
+            last;
+        }
+        close(FILE);
+    }
      if ($user ne 'root')
      {
          $self->message_log('info', "X not started because uid=$user is  
not 'root'.");
@@ -2193,7 +2237,7 @@
      }

      # Only start X if X is not already running.
-    if (qx(/bin/pidof X))
+    if ($self->application_running('X'))
      {
          $self->message_log('info', "X not started because X is already  
running.");
          return 0;
@@ -2201,10 +2245,7 @@

      system(qq(/bin/su -c '/usr/bin/nohup /usr/bin/xinit > $devnull 2>&1 &'  
- minimyth));

-    if (qx(/bin/pidof mm_sleep_on_ss))
-    {
-        system(qq(/usr/bin/killall mm_sleep_on_ss));
-    }
+    $self->application_stop('mm_sleep_on_ss');
      if ($self->var_get('MM_X_SCREENSAVER_HACK') eq 'sleep')
      {
          system(qq(/usr/bin/mm_sleep_on_ss &));
@@ -2224,21 +2265,28 @@

      my $log_file = File::Spec->devnull;

-    # Only users root and minimyth can stop X.
-    my $user = getpwuid(qx(/usr/bin/id -u));
+    # Only user root can stop X.
+    my $user = '';
+    if (open(FILE, '-|', '/usr/bin/id -u'))
+    {
+        while (<FILE>)
+        {
+            chomp;
+            $user = getpwuid($_);
+            last;
+        }
+        close(FILE);
+    }
      if ($user ne 'root')
      {
          $self->message_log('info', "X not stopped because uid=$user is  
not 'root'.");
          return 0;
      }

-    if (qx(/bin/pidof mm_sleep_on_ss))
-    {
-        system(qq(/usr/bin/killall mm_sleep_on_ss));
-    }
+    $self->application_stop('mm_sleep_on_ss');

      # Only stop X if X is running.
-    if (! qx(/bin/pidof X))
+    if (! $self->application_running('X'))
      {
          $self->message_log('info', "X not stopped because X is not  
running.");
          return 0;

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"minimyth-commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/minimyth-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to