autoupdate.pl
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #!/usr/bin/env perl
  2. #########################################################################
  3. #  This software is open source, licensed under the GNU General Public
  4. #  License, version 2.
  5. #  Basically, this means that you're allowed to modify and distribute
  6. #  this software. However, if you distribute modified versions, you MUST
  7. #  also distribute the source code.
  8. #  See http://www.gnu.org/licenses/gpl.html for the full license.
  9. #
  10. #########################################################################
  11. package autoupdate;
  12. use strict;
  13. use FindBin qw($RealBin);
  14. use lib "$RealBin";
  15. use lib "$RealBin/src";
  16. use lib "$RealBin/src/deps";
  17. use Time::HiRes qw(time usleep);
  18. use Carp::Assert;
  19. # Update base
  20. use SVN::Updater;
  21. sub check_svn_util {
  22. my $saa = SVN::Updater->new({ path => "."});
  23. if ($saa->_svn_command("help") == -1) {
  24. print "Warning!!!!!!!!!!! To use this tool please Install "Subversion Client" toolsn";
  25. sleep (60000);
  26. return -1;
  27. };
  28. return 1;
  29. };
  30. sub upgrade {
  31. my ($path, $repos_name) = @_;
  32. print "Chenking " . $repos_name . " for updates...n";
  33. my $sa = SVN::Updater->load({ path => $path });
  34. print "  Fetching updates...n";
  35. $sa->update("--force", "--accept theirs-conflict");
  36. print " Done updating " . $repos_name . "n";
  37. };
  38. print "-===================== OpenKore Auto Update tool =====================-n";
  39. if (check_svn_util() == 1) {
  40. upgrade(".", "OpenKore core files") if (-d "src/.svn");
  41. upgrade("./tables", "OpenKore table data files") if (-d "tables/.svn");
  42. upgrade("./fields", "OpenKore map data files") if (-d "fields/.svn");
  43. };
  44. print "-=========================== Done Updating ===========================-nnn";
  45. # Run main App
  46. my $file = "openkore.pl";
  47. $0 = $file;
  48. FindBin::again();
  49. {
  50. package main;
  51. do $file;
  52. }
  53. 1;