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

外挂编程

开发平台:

Windows_Unix

  1. #!/usr/bin/env perl
  2. # Win32 Perl script launcher
  3. # This file is meant to be compiled by PerlApp. It acts like a mini-Perl interpreter.
  4. #
  5. # Your script's initialization and main loop code should be placed in a function
  6. # called __start() in the main package. That function will be called by this
  7. # launcher. The reason for this is that otherwise, the perl interpreter will be
  8. # in "eval" all the time while running your script. It will break __DIE__ signal
  9. # handlers that check for the value of $^S.
  10. #
  11. # If your script is run by this launcher, the environment variable INTERPRETER is
  12. # set. Your script should call __start() manually if this environment variable is not
  13. # set.
  14. #
  15. # example script:
  16. # our $quit = 0;
  17. #
  18. # sub __start {
  19. # print "Hello world initialized.n";
  20. # while (!$quit) {
  21. # ...
  22. # }
  23. # }
  24. #
  25. # __start() unless defined $ENV{INTERPRETER};
  26. package StarterScript;
  27. BEGIN {
  28. if ($ENV{BUILDING_WX} && $^O eq 'MSWin32') {
  29. require Wx::Perl::Packager;
  30. }
  31. }
  32. use strict;
  33. use Config;
  34. if ($^O ne 'MSWin32') {
  35. # We are not on Windows, so tell the user about it
  36. print "nThis file is meant to be compiled by PerlApp.n";
  37. print "To run kore, execute openkore.pl instead.nn";
  38. exit 1;
  39. }
  40. # PerlApp 6's @INC doesn't contain '.', so add it
  41. my $hasCurrentDir;
  42. foreach (@INC) {
  43. if ($_ eq ".") {
  44. $hasCurrentDir = 1;
  45. last;
  46. }
  47. }
  48. push @INC, "." if (!$hasCurrentDir);
  49. if (0) {
  50. # Force PerlApp to include the following modules
  51. use FindBin;
  52. require base;
  53. require bytes;
  54. require lib;
  55. require integer;
  56. require warnings;
  57. require UNIVERSAL;
  58. require Exporter;
  59. require Fcntl;
  60. require Carp;
  61. require Math::Trig;
  62. require Text::Wrap;
  63. require Text::ParseWords;
  64. require Time::HiRes;
  65. require IO::Socket::INET;
  66. require Getopt::Long;
  67. require Digest::MD5;
  68. require SelfLoader;
  69. require Data::Dumper;
  70. require Win32;
  71. require Win32::Console;
  72. require Win32::Process;
  73. require XSTools;
  74. require Encode;
  75. require encoding;
  76. require Storable;
  77. require Compress::Zlib;
  78. require "unicore/lib/gc_sc/SpacePer.pl";
  79. require "unicore/lib/gc_sc/Word.pl";
  80. require "unicore/lib/gc_sc/Digit.pl";
  81. require "unicore/lib/gc_sc/Cntrl.pl";
  82. require "unicore/lib/gc_sc/ASCII.pl";
  83. require HTML::Entities;
  84. }
  85. if ($PerlApp::TOOL eq "PerlApp") {
  86. $ENV{INTERPRETER} = PerlApp::exe();
  87. if (PerlApp::exe() =~ /wxstart.exe$/i) {
  88. $ENV{OPENKORE_DEFAULT_INTERFACE} = 'Wx';
  89. }
  90. } else {
  91. print "Do not run start.pl directly! If you're using Perl then run openkore.pl instead!n";
  92. <STDIN>;
  93. exit 1;
  94. }
  95. my $file = "openkore.pl";
  96. if ($ARGV[0] eq '!') {
  97. shift;
  98. while (@ARGV) {
  99. if ($ARGV[0] =~ /^-I(.*)/) {
  100. unshift @INC, $1;
  101. } else {
  102. last;
  103. }
  104. shift;
  105. }
  106. $file = shift;
  107. }
  108. $0 = $file;
  109. FindBin::again();
  110. {
  111. package main;
  112. do $file;
  113. }
  114. if ($@) {
  115. print $@;
  116. print "nPress ENTER to exit.n";
  117. <STDIN>;
  118. exit 1;
  119. } elsif (defined $ENV{INTERPRETER}) {
  120. main::__start() if defined(&main::__start);
  121. }