sync-repos.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. error_reporting(E_ALL);
  3. if (!isset($_SERVER['argv']) && !isset($argv)) {
  4. echo "Please enable the register_argc_argv directive in your php.ini\n";
  5. exit(1);
  6. } elseif (!isset($argv)) {
  7. $argv = $_SERVER['argv'];
  8. }
  9. if (!isset($argv[1]) || !in_array($argv[1], ['nano', 'tetra'])) {
  10. echo "Run with \"php sync-repos.php [TYPE] [DISABLE_SYNC]\"\n";
  11. echo " TYPE -> 'nano' or 'tetra'\n";
  12. echo " DISABLE_SYNC -> disable sync with original pineapple repo\n";
  13. exit(1);
  14. }
  15. //tar czf OnlineHashCrack.tar.gz OnlineHashCrack && mv OnlineHashCrack.tar.gz ../build
  16. //tar czf PMKIDAttack.tar.gz PMKIDAttack && mv PMKIDAttack.tar.gz ../build
  17. //tar czf Terminal.tar.gz Terminal && mv Terminal.tar.gz ../build
  18. $extraPackages = [
  19. 'OnlineHashCrack',
  20. 'PMKIDAttack',
  21. 'Terminal',
  22. ];
  23. echo "\nsync mk6 packages - by DSR!\n\n";
  24. $device = $argv[1];
  25. $disableSync = (isset($argv[2]) && filter_var($argv[2], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
  26. $buildDir = getcwd() . '/build';
  27. $srcDir = getcwd() . '/src';
  28. $moduleData = json_decode(file_get_contents("https://www.wifipineapple.com/{$device}/modules"), true);
  29. if (!$disableSync) {
  30. echo "======== Packages (" . count($moduleData) . ") ========\n";
  31. foreach ($moduleData as $key => $value) {
  32. if ($value["type"] !== 'Sys') {
  33. echo " [+] {$key}\n";
  34. $file = file_get_contents("https://www.wifipineapple.com/{$device}/modules/{$key}");
  35. @unlink("{$buildDir}/{$key}.tar.gz");
  36. file_put_contents("{$buildDir}/{$key}.tar.gz", $file);
  37. }
  38. }
  39. echo "\n\n";
  40. }
  41. echo "======== Extra Packages (" . count($extraPackages) . ") ========\n";
  42. foreach ($extraPackages as $key) {
  43. echo " [+] {$key}\n";
  44. $fileName = "{$buildDir}/{$key}.tar.gz";
  45. $infoData = json_decode(file_get_contents("{$srcDir}/{$key}/module.info"));
  46. $module = [
  47. 'name' => $key,
  48. 'title' => $infoData->title,
  49. 'version' => $infoData->version,
  50. 'description' => $infoData->description,
  51. 'author' => $infoData->author,
  52. 'size' => filesize($fileName),
  53. 'checksum' => hash_file('sha256', $fileName),
  54. 'num_downloads' => '0',
  55. ];
  56. if (isset($infoData->system)) {
  57. $module['type'] = 'System';
  58. } elseif (isset($infoData->cliOnly)) {
  59. $module['type'] = 'CLI';
  60. } else {
  61. $module['type'] = 'GUI';
  62. }
  63. $moduleData[ $key ] = $module;
  64. }
  65. asort($moduleData);
  66. //@unlink("{$buildDir}/{$device}.json");
  67. //file_put_contents("{$buildDir}/{$device}.json", json_encode($moduleData));
  68. @unlink("{$buildDir}/modules.json");
  69. file_put_contents("{$buildDir}/modules.json", json_encode($moduleData));
  70. echo "\n\n";
  71. echo "Complete!";