Advertisement
Guest User

Untitled

a guest
May 6th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. <?php
  2. if (basename(getcwd()) !== 'docroot') {
  3. echo "You must run this in docroot.\n";
  4. exit(1);
  5. }
  6.  
  7. if (count($argv) < 4) {
  8. echo "Usage: php rebuild_module_paths.php hostname dbname username password\n";
  9. exit(1);
  10. }
  11.  
  12. $servername = $argv[1];
  13. $database = $argv[2];
  14. $username = $argv[3];
  15. $password = isset($argv[4]) ? $argv[4] : '';
  16.  
  17. $passwordcomment = $password ? 'a password' : 'no password';
  18. echo "Connecting to mysql:host=$servername;dbname=$database with username=$username and $passwordcomment.\n";
  19. sleep(3);
  20.  
  21. try {
  22. $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
  23. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  24.  
  25. $query = $conn->query('SELECT filename,name FROM system');
  26. $results = $query->fetchAll(PDO::FETCH_ASSOC);
  27.  
  28. if (!$results) {
  29. throw new \Exception('Failed to query database.');
  30. }
  31.  
  32. foreach ($results as $mod) {
  33. exec('find . -name ' . basename($mod['filename']), $modpath_arr);
  34. if (count($modpath_arr) == 1) {
  35. $modpath = ltrim($modpath_arr[0], './');
  36. $dbpath = $mod['filename'];
  37. if ($dbpath != $modpath) {
  38. echo "Updating " . $mod['name']. "'s path\n";
  39. $query = $conn->prepare('UPDATE system SET filename=:filename WHERE name=:name');
  40. $query->bindParam(':filename', $modpath, PDO::PARAM_STR);
  41. $query->bindParam(':name', $mod['name'], PDO::PARAM_STR);
  42. $query->execute();
  43. }
  44. }
  45. unset($modpath_arr);
  46. }
  47. } catch(PDOException $e) {
  48. echo "Error: " . $e->getMessage();
  49. }
  50. $conn = null;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement