summaryrefslogtreecommitdiff
path: root/syntax.pl
blob: 5bcb8a3ad9ec07c026c92b9344b606dfcffe42ca (plain)
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
#!/usr/bin/perl
#
# This script reads the syntaces of commands from irssi source tree.
# Then it browses through all '.in' files in the current directory and
# substitutes '@SYNTAX:foo@' tags with real syntaces found. This data
# is written into the corresponding files without the '.in' extension.
# For example:  help.in -> ../help
#
# This path has to be changed. It should point to your irssi/src directory
# Remember to include the asterisk ('*').
$SRC_PATH='src';

# This is quick and dirty, but works for sure :)
$FOO = `find src -name '*.c' -exec grep -e '/* SYNTAX:' \{\} \\; | sed 's/.*SYNTAX: //' > irssi_syntax`;

while (<docs/help/in/*.in>) {
   open (FILE, "$_");
   @data = <FILE>;
   close (FILE);
   foreach $DATARIVI (@data) {
      if ($DATARIVI =~ /\@SYNTAX\:(.+)\@/) {
          $etsittava = "\U$1 ";
          $SYNTAX = `grep \'^$etsittava\' irssi_syntax`;
          $SYNTAX =~ s/\*\///g; $SYNTAX =~ s/ *$//;
          $DATARIVI = $SYNTAX;
      }
   }
   $newfilename = $_; $newfilename =~ s/\.in$//;
   $newfilename =~ s/\/in\//\//;
   open (NEWFILE, ">$newfilename");
   print NEWFILE @data;
   close (NEWFILE);
}
unlink "irssi_syntax";