fix error
[linksys-wrt3g-tools.git] / scripts / linksys-wrt3g.php
old mode 100644 (file)
new mode 100755 (executable)
index ef18708..7d87cd1
@@ -1,3 +1,4 @@
+#!/usr/bin/env php
 <?php
 /**
 * Control script for Linksys WRT3g routers.
@@ -61,16 +62,43 @@ $parser->addOption(
         'default'     => $GLOBALS['linksys-wrt3g-tools']['password']
     )
 );
+$parser->addOption(
+    'verbosity',
+    array(
+        'short_name'  => '-v',
+        'long_name'   => '--verbose',
+        'description' => 'Show more details (more to see more details)',
+        'action'      => 'Counter',
+    )
+);
 
-$parser->addCommand(
+$stCmd = $parser->addCommand(
     'status',
     array(
-        'description' => 'Show the router status'
+        'aliases'     => array('s', 'st'),
+        'description' => 'Show the connection status'
+    )
+);
+$stCmd = $parser->addCommand(
+    'cardstatus',
+    array(
+        'aliases'     => array('c', 'cs'),
+        'description' => 'Show the card/SIM status'
     )
 );
+$stCmd = $parser->addCommand(
+    'allstatus',
+    array(
+        'aliases'     => array('a', 'as'),
+        'description' => 'Show all status details'
+    )
+);
+
+
 $parser->addCommand(
     'reboot',
     array(
+        'aliases'     => array('r'),
         'description' => 'Reboot the router'
     )
 );
@@ -84,19 +112,33 @@ try {
 
 try {
     $router = new Wrt3g();
-    $router->host     = $result->options['host'];
-    $router->user     = $result->options['user'];
-    $router->password = $result->options['password'];
+    $router->verbosity = $result->options['verbosity'];
+    $router->host      = $result->options['host'];
+    $router->user      = $result->options['user'];
+    $router->password  = $result->options['password'];
+
+    $router->log('Command: ' . $result->command_name, 2);
 
     switch ($result->command_name) {
     case 'reboot':
         $resp = $router->reboot();
         echo $resp->getStatus() . ' ' . $resp->getReasonPhrase() . "\n";
+        if (intval($resp->getStatus() / 100) != 2) {
+            exit(3);
+        }
         break;
 
+    case 'allstatus':
+    case 'cardstatus':
     case 'status':
     default:
-        $arStatus = $router->getStatus();
+        if ($result->command_name == 'allstatus') {
+            $arStatus = $router->getFullStatus();
+        } else if ($result->command_name == 'cardstatus') {
+            $arStatus = $router->getCardStatus();
+        } else {
+            $arStatus = $router->getConnectionStatus();
+        }
         foreach ($arStatus as $key => $value) {
             echo $key . ': ' . $value . "\n";
         }