]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
command line arg handling a little more flexible
authorEvan Prodromou <evan@controlyourself.ca>
Sun, 28 Jun 2009 20:12:45 +0000 (16:12 -0400)
committerEvan Prodromou <evan@controlyourself.ca>
Sun, 28 Jun 2009 20:12:45 +0000 (16:12 -0400)
scripts/commandline.inc

index 4a7757fb98f13e43c47bf55cdd0841da848304fd..8c5c56d5ea0961991f28d420743efe81e89db773 100644 (file)
@@ -115,24 +115,60 @@ require_once INSTALLDIR . '/lib/common.php';
 
 set_error_handler('common_error_handler');
 
-function have_option($str)
+function have_option($opt, $alt=null)
 {
    global $options;
+
+   $matches = array($opt);
+
+   if (strlen($opt) > 1 && 0 != strncmp($opt, '--', 2)) {
+      $matches[] = '--'.$opt;
+   } else {
+      $matches[] = $opt;
+   }
+
+   if (!empty($alt)) {
+       if (strlen($alt) > 1 && 0 != strncmp($alt, '--', 2)) {
+           $matches[] = '--'.$alt;
+       } else {
+           $matches[] = $alt;
+       }
+   }
+
    foreach ($options as $option) {
-       if ($option[0] == $str) {
+       if (in_array($option[0], $matches)) {
           return true;
        }
    }
+
    return false;
 }
 
-function get_option_value($str)
+function get_option_value($str, $alt=null)
 {
    global $options;
+
+   $matches = array();
+
+   if (strlen($opt) > 1 && 0 != strncmp($opt, '--', 2)) {
+      $matches[] = '--'.$opt;
+   } else {
+      $matches[] = $opt;
+   }
+
+   if (!empty($alt)) {
+       if (strlen($alt) > 1 && 0 != strncmp($alt, '--', 2)) {
+           $matches[] = '--'.$alt;
+       } else {
+           $matches[] = $alt;
+       }
+   }
+
    foreach ($options as $option) {
-       if ($option[0] == $str) {
+       if (in_array($option[0], $matches)) {
           return $option[1];
        }
    }
+
    return null;
 }
\ No newline at end of file