<?php
// find_executable_and_go.php
// RJM Programming
// April, 2022
// Xcode Command Line project ... find its executable
//  find /Users/user/Library/ -name "Swift Command Line" -exec file {} \; 2> /dev/null
//: Mach-O universal binary
 $suffarg='';
 $aline='';
 
 if (isset($argc)) {
     for ($i=1; $i<sizeof($argv); $i++) {
        $suffarg.=' ' . $argv[$i];
     }
     $aline = str_replace("\n","",readline("\n\n\nXcode Command Line project ... find its executable \nRJM Programming - April, 2022\n\nEnter Xcode project: "));
 } else if (isset($_GET['inproject'])) {
     $aline=str_replace('+',' ',urldecode($_GET['inproject']));
     if (isset($_GET['argvs'])) {
       $suffarg=' ' . str_replace('+',' ',urldecode($_GET['argvs']));
     }
 } else if (isset($_POST['inproject'])) {
     $aline=str_replace('+',' ',urldecode($_POST['inproject']));
     if (isset($_POST['argvs'])) {
       $suffarg=' ' . str_replace('+',' ',urldecode($_POST['argvs']));
     }
 }
 
 if (trim($aline) != '') {
      $hm=getenv('HOME');
      $exefs=explode(":" , shell_exec("find " . $hm . '/Library/ -name "' . $aline . '" -exec file {} \; 2> /dev/null | egrep "/[RD]e[lb][eu][ag][^/]*/' . $aline . ':" | grep ' . "'Mach-O '"));
      $exef=$exefs[0];
      for ($i=2; $i<sizeof($exefs); $i+=2) {
        if (strpos($exefs[$i], '/Release/') !== false) { $exef=$exefs[$i]; }
      }
      passthru('"' . $exef . '"' . $suffarg);
 } else {
      echo "<html><body>
      <h1>Xcode Command Line project ... find its executable</h1>
      <h3>RJM Programming - April, 2022</h3>
      <form method=GET action=HTTP://localhost:8888/find_executable_and_go.php>
      <br><input placeholder='Xcode Project Name' name=inproject type=text value=''></input><br>
      <br><input placeholder='Optional Argument(s)' name=argvs type=text value=''></input><br><br>
      <input type=submit value=Go style=background-color:yellow;></input>
      </form>
      </body>
      </html>";
 }
 exit;

 ?>