keepalive/flextimer/test/testflextimer/docs/html/installdox
author hgs
Wed, 27 Oct 2010 17:43:56 +0300
changeset 70 ac5daea24fb0
permissions -rw-r--r--
201038
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
70
hgs
parents:
diff changeset
     1
#!/usr/bin/perl
hgs
parents:
diff changeset
     2
hgs
parents:
diff changeset
     3
%subst = ( );
hgs
parents:
diff changeset
     4
$quiet   = 0;
hgs
parents:
diff changeset
     5
hgs
parents:
diff changeset
     6
if (open(F,"search.cfg"))
hgs
parents:
diff changeset
     7
{
hgs
parents:
diff changeset
     8
  $_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
hgs
parents:
diff changeset
     9
  $_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
hgs
parents:
diff changeset
    10
}
hgs
parents:
diff changeset
    11
hgs
parents:
diff changeset
    12
while ( @ARGV ) {
hgs
parents:
diff changeset
    13
  $_ = shift @ARGV;
hgs
parents:
diff changeset
    14
  if ( s/^-// ) {
hgs
parents:
diff changeset
    15
    if ( /^l(.*)/ ) {
hgs
parents:
diff changeset
    16
      $v = ($1 eq "") ? shift @ARGV : $1;
hgs
parents:
diff changeset
    17
      ($v =~ /\/$/) || ($v .= "/");
hgs
parents:
diff changeset
    18
      $_ = $v;
hgs
parents:
diff changeset
    19
      if ( /(.+)\@(.+)/ ) {
hgs
parents:
diff changeset
    20
        if ( exists $subst{$1} ) {
hgs
parents:
diff changeset
    21
          $subst{$1} = $2;
hgs
parents:
diff changeset
    22
        } else {
hgs
parents:
diff changeset
    23
          print STDERR "Unknown tag file $1 given with option -l\n";
hgs
parents:
diff changeset
    24
          &usage();
hgs
parents:
diff changeset
    25
        }
hgs
parents:
diff changeset
    26
      } else {
hgs
parents:
diff changeset
    27
        print STDERR "Argument $_ is invalid for option -l\n";
hgs
parents:
diff changeset
    28
        &usage();
hgs
parents:
diff changeset
    29
      }
hgs
parents:
diff changeset
    30
    }
hgs
parents:
diff changeset
    31
    elsif ( /^q/ ) {
hgs
parents:
diff changeset
    32
      $quiet = 1;
hgs
parents:
diff changeset
    33
    }
hgs
parents:
diff changeset
    34
    elsif ( /^\?|^h/ ) {
hgs
parents:
diff changeset
    35
      &usage();
hgs
parents:
diff changeset
    36
    }
hgs
parents:
diff changeset
    37
    else {
hgs
parents:
diff changeset
    38
      print STDERR "Illegal option -$_\n";
hgs
parents:
diff changeset
    39
      &usage();
hgs
parents:
diff changeset
    40
    }
hgs
parents:
diff changeset
    41
  }
hgs
parents:
diff changeset
    42
  else {
hgs
parents:
diff changeset
    43
    push (@files, $_ );
hgs
parents:
diff changeset
    44
  }
hgs
parents:
diff changeset
    45
}
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
foreach $sub (keys %subst)
hgs
parents:
diff changeset
    48
{
hgs
parents:
diff changeset
    49
  if ( $subst{$sub} eq "" ) 
hgs
parents:
diff changeset
    50
  {
hgs
parents:
diff changeset
    51
    print STDERR "No substitute given for tag file `$sub'\n";
hgs
parents:
diff changeset
    52
    &usage();
hgs
parents:
diff changeset
    53
  }
hgs
parents:
diff changeset
    54
  elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
hgs
parents:
diff changeset
    55
  {
hgs
parents:
diff changeset
    56
    print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; 
hgs
parents:
diff changeset
    57
  }
hgs
parents:
diff changeset
    58
}
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
if ( ! @files ) {
hgs
parents:
diff changeset
    61
  if (opendir(D,".")) {
hgs
parents:
diff changeset
    62
    foreach $file ( readdir(D) ) {
hgs
parents:
diff changeset
    63
      $match = ".html";
hgs
parents:
diff changeset
    64
      next if ( $file =~ /^\.\.?$/ );
hgs
parents:
diff changeset
    65
      ($file =~ /$match/) && (push @files, $file);
hgs
parents:
diff changeset
    66
      ($file =~ "tree.js") && (push @files, $file);
hgs
parents:
diff changeset
    67
    }
hgs
parents:
diff changeset
    68
    closedir(D);
hgs
parents:
diff changeset
    69
  }
hgs
parents:
diff changeset
    70
}
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
if ( ! @files ) {
hgs
parents:
diff changeset
    73
  print STDERR "Warning: No input files given and none found!\n";
hgs
parents:
diff changeset
    74
}
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
foreach $f (@files)
hgs
parents:
diff changeset
    77
{
hgs
parents:
diff changeset
    78
  if ( ! $quiet ) {
hgs
parents:
diff changeset
    79
    print "Editing: $f...\n";
hgs
parents:
diff changeset
    80
  }
hgs
parents:
diff changeset
    81
  $oldf = $f;
hgs
parents:
diff changeset
    82
  $f   .= ".bak";
hgs
parents:
diff changeset
    83
  unless (rename $oldf,$f) {
hgs
parents:
diff changeset
    84
    print STDERR "Error: cannot rename file $oldf\n";
hgs
parents:
diff changeset
    85
    exit 1;
hgs
parents:
diff changeset
    86
  }
hgs
parents:
diff changeset
    87
  if (open(F,"<$f")) {
hgs
parents:
diff changeset
    88
    unless (open(G,">$oldf")) {
hgs
parents:
diff changeset
    89
      print STDERR "Error: opening file $oldf for writing\n";
hgs
parents:
diff changeset
    90
      exit 1;
hgs
parents:
diff changeset
    91
    }
hgs
parents:
diff changeset
    92
    if ($oldf ne "tree.js") {
hgs
parents:
diff changeset
    93
      while (<F>) {
hgs
parents:
diff changeset
    94
        s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
hgs
parents:
diff changeset
    95
        print G "$_";
hgs
parents:
diff changeset
    96
      }
hgs
parents:
diff changeset
    97
    }
hgs
parents:
diff changeset
    98
    else {
hgs
parents:
diff changeset
    99
      while (<F>) {
hgs
parents:
diff changeset
   100
        s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
hgs
parents:
diff changeset
   101
        print G "$_";
hgs
parents:
diff changeset
   102
      }
hgs
parents:
diff changeset
   103
    }
hgs
parents:
diff changeset
   104
  } 
hgs
parents:
diff changeset
   105
  else {
hgs
parents:
diff changeset
   106
    print STDERR "Warning file $f does not exist\n";
hgs
parents:
diff changeset
   107
  }
hgs
parents:
diff changeset
   108
  unlink $f;
hgs
parents:
diff changeset
   109
}
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
sub usage {
hgs
parents:
diff changeset
   112
  print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
hgs
parents:
diff changeset
   113
  print STDERR "Options:\n";
hgs
parents:
diff changeset
   114
  print STDERR "     -l tagfile\@linkName   tag file + URL or directory \n";
hgs
parents:
diff changeset
   115
  print STDERR "     -q                    Quiet mode\n\n";
hgs
parents:
diff changeset
   116
  exit 1;
hgs
parents:
diff changeset
   117
}