#!/usr/bin/perl

$topdir="/etc/menu-methods";
$dirname="$topdir/multi";
$langname="$topdir/lang.h";
@langs;

opendir DIR,$dirname;

while (defined($filename= readdir(DIR))){
    if (!(($filename eq ".")||($filename eq ".."))){
	open MENU, "$dirname/$filename" or die "cannot open file $filename";
	$top=<MENU>;close MENU;
	
	if ($top =~ m@#!/usr/sbin/install-menu@) {#check for menu file
	    open LANG,$langname or die "cannot open lang.h";
	    foreach (<LANG>){#find language definitions
		chomp $_;
		if (/languages/){
		    s/function.+languages\(\)\=\"(.*)\"/$1/;
		    @langs=split ":";
		}
	    }
	    close LANG;
	    
	    $number=1;
	    foreach $lang (@langs){
		open MENU, "$dirname/$filename" or die "cannot open $filename";
		open NEWMENU, ">$topdir/$filename$number" or die "cannot open $filename.$_";
		chmod 0755, "$topdir/$filename$number";
		foreach (<MENU>){
		    if(/genmenu/){
			s/[a-z=\s]+\"(.*)\"/$1/;
			chomp $_;
			print NEWMENU "genmenu=\"$_.$lang\"\n";
		    }elsif (/\!include/){
			print NEWMENU;	
			print NEWMENU "function lang()=\"$lang\"\n";
		    }else{
			print NEWMENU;
		    }
		}
		close MENU;
		close NEWMENU;
		$number++;
	    }
	}
    }
}
