mtr_misc.pl
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # -*- cperl -*-
  2. # This is a library file used by the Perl version of mysql-test-run,
  3. # and is part of the translation of the Bourne shell script with the
  4. # same name.
  5. use strict;
  6. sub mtr_full_hostname ();
  7. sub mtr_short_hostname ();
  8. sub mtr_init_args ($);
  9. sub mtr_add_arg ($$);
  10. sub mtr_path_exists(@);
  11. sub mtr_script_exists(@);
  12. sub mtr_exe_exists(@);
  13. ##############################################################################
  14. #
  15. #  Misc
  16. #
  17. ##############################################################################
  18. # We want the fully qualified host name and hostname() may have returned
  19. # only the short name. So we use the resolver to find out.
  20. # Note that this might fail on some platforms
  21. sub mtr_full_hostname () {
  22.   my $hostname=  hostname();
  23.   if ( $hostname !~ /./ )
  24.   {
  25.     my $address=   gethostbyname($hostname)
  26.       or mtr_error("Couldn't resolve $hostname : $!");
  27.     my $fullname=  gethostbyaddr($address, AF_INET);
  28.     $hostname= $fullname if $fullname; 
  29.   }
  30.   return $hostname;
  31. }
  32. sub mtr_short_hostname () {
  33.   my $hostname=  hostname();
  34.   $hostname =~ s/..+$//;
  35.   return $hostname;
  36. }
  37. # FIXME move to own lib
  38. sub mtr_init_args ($) {
  39.   my $args = shift;
  40.   $$args = [];                            # Empty list
  41. }
  42. sub mtr_add_arg ($$) {
  43.   my $args=   shift;
  44.   my $format= shift;
  45.   my @fargs = @_;
  46.   push(@$args, sprintf($format, @fargs));
  47. }
  48. ##############################################################################
  49. sub mtr_path_exists (@) {
  50.   foreach my $path ( @_ )
  51.   {
  52.     return $path if -e $path;
  53.   }
  54.   if ( @_ == 1 )
  55.   {
  56.     mtr_error("Could not find $_[0]");
  57.   }
  58.   else
  59.   {
  60.     mtr_error("Could not find any of " . join(" ", @_));
  61.   }
  62. }
  63. sub mtr_script_exists (@) {
  64.   foreach my $path ( @_ )
  65.   {
  66.     return $path if -x $path;
  67.   }
  68.   if ( @_ == 1 )
  69.   {
  70.     mtr_error("Could not find $_[0]");
  71.   }
  72.   else
  73.   {
  74.     mtr_error("Could not find any of " . join(" ", @_));
  75.   }
  76. }
  77. sub mtr_exe_exists (@) {
  78.   my @path= @_;
  79.   map {$_.= ".exe"} @path if $::glob_win32;
  80.   foreach my $path ( @path )
  81.   {
  82.     return $path if -x $path;
  83.   }
  84.   if ( @path == 1 )
  85.   {
  86.     mtr_error("Could not find $path[0]");
  87.   }
  88.   else
  89.   {
  90.     mtr_error("Could not find any of " . join(" ", @path));
  91.   }
  92. }
  93. 1;