sync-snippets.php 950 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env php
  2. <?php
  3. $here = __DIR__;
  4. array_map("unlink", glob("$here/snippets/haskell-mode/*"));
  5. $csv = fopen("$here/samples.csv", "r");
  6. $headings = fgetcsv($csv);
  7. $projects = [];
  8. while ($data = fgetcsv($csv)) {
  9. $row = array_combine($headings, $data);
  10. $projects[] = $row["Project Path"];
  11. }
  12. fclose($csv);
  13. $projects = array_unique($projects);
  14. $projects = array_map(function($p) {
  15. return str_replace("~", $_SERVER["HOME"], $p);
  16. }, $projects);
  17. foreach ($projects as $project) {
  18. $snippetsDir = "$project/snippets";
  19. if (is_dir($snippetsDir)) {
  20. $files = glob("$snippetsDir/*");
  21. foreach ($files as $file) {
  22. $to = "$here/snippets/haskell-mode/" . basename($file);
  23. if (is_link($to)) {
  24. throw new Exception("$to exists");
  25. }
  26. symlink($file, $to);
  27. }
  28. }
  29. else {
  30. printf("WARNING: Snippets path %s not found\n", $snippetsDir);
  31. }
  32. }