Blame view

sources/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryKeyWd.php 2.39 KB
03e52840d   Kload   Init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  <?php
  $RODS_tree_root = dirname(__FILE__) . "/../../..";
  
  $capi_genque_KeyWd_file = $RODS_tree_root . "/lib/core/include/rodsKeyWdDef.h";
  $prods_genque_keywd_file = $RODS_tree_root . "/clients/prods/src/RodsGenQueryKeyWd.inc.php";
  
  // Add more Query keywd here, if you wish. It will be added to the default
  // RODS Gen Que number. Note that these number are for web server/client
  // only. RODS server does not recongnize them.
  $new_genque_keywds = array(//array("SOMEKEYWD", "SOMESTR"),
  );
  
  $value_pairs = array();
  
  $lines = explode("
  ", file_get_contents($capi_genque_KeyWd_file));
  foreach ($lines as $line) {
      if (strlen($line) < 8) continue;
      if (substr($line, 0, 7) == '#define') {
          $rest = trim(substr($line, 7));
          $tokens = preg_split("/\s+/", $rest);
          if (count($tokens) < 2)
              continue;
          $val1 = NULL;
          $val2 = NULL;
  
          foreach ($tokens as $token) {
  
              if (strlen($token) > 1) {
                  if (empty($val1)) $val1 = trim($token);
                  else {
  
                      if (($token{0} == '"') /*&&($token{strlen($token)-1}=='"')*/) {
                          if (empty($val2))
                              $val2 = trim($token);
                      }
                  }
              }
          }
          if ((!empty($val1)) && (!empty($val2))) {
              array_push($value_pairs, array($val1, $val2));
          }
      }
  }
  foreach ($new_genque_keywds as $new_code_pair) {
      if ((!is_array($new_code_pair)) || (count($new_code_pair) != 2))
          die("unexpected new_code_pair:$new_code_pair
  ");
      array_push($value_pairs, $new_code_pair);
  }
  
  $outputstr = "<?php 
  " .
      "/* This file is generated by " . basename(__FILE__) .
      "   Please modify that file if you wish to update the " .
      "   Gen Query keywords.            */
  ";
  $outputstr = $outputstr . '$GLOBALS[\'PRODS_GENQUE_KEYWD\']=array(' . "
  ";
  foreach ($value_pairs as $value_pair) {
      $val1 = $value_pair[0];
      $val2 = $value_pair[1];
      $outputstr = $outputstr . "  '$val1' => $val2,
  ";
  }
  $outputstr = $outputstr . ");
  ";
  
  $outputstr = $outputstr . '$GLOBALS[\'PRODS_GENQUE_KEYWD_REV\']=array(' . "
  ";
  foreach ($value_pairs as $value_pair) {
      $val1 = $value_pair[0];
      $val2 = $value_pair[1];
      $outputstr = $outputstr . "  $val2 => '$val1',
  ";
  }
  $outputstr = $outputstr . ");
  ";
  
  $outputstr = $outputstr . "?>
  ";
  file_put_contents($prods_genque_keywd_file, $outputstr);