1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
41
  
42
  
43
  
44
  
45
  
46
  
47
  
string copy_to = "manual/images"; 
 
void parse_directory(string directory) { 
  werror("autodoc_images: Entering %s...\n", directory); 
  array(string) files = get_dir(directory); 
  foreach(files, string file) { 
    //    werror("%O\n", directory+file); 
    if(file_stat(directory+file)->isdir) { 
      parse_directory(directory+file+"/"); 
      continue; 
    } 
    if(!has_suffix(file, ".xml")) 
      continue; 
    if(file=="sub_manual.xml") 
      continue; 
    string x,y; 
    y = Stdio.read_file(directory+file); 
#ifdef DEBUG 
    array err = catch { 
      x = Tools.AutoDoc.ProcessXML.moveImages 
        (y, directory, copy_to); 
    }; 
    if(!err) { 
      if(x!=y) 
        Stdio.write_file(directory+file, x); 
    } 
    else 
      werror(describe_backtrace(err)); 
#else 
    x = Tools.AutoDoc.ProcessXML.moveImages 
      (Stdio.read_file(directory+file), directory, copy_to); 
    if(x!=y) 
      Stdio.write_file(directory+file, x); 
#endif 
  } 
} 
 
 
int main(int num, array(string) args) { 
 
  if(num<3) throw( "Not enough arguments to autodoc_images.pike\n" ); 
  copy_to = args[2]; 
  parse_directory( args[1] ); 
 
}