#!/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=;close MENU; if ($top =~ m@#!/usr/sbin/install-menu@) {#check for menu file open LANG,$langname or die "cannot open lang.h"; foreach (){#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 (){ 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++; } } } }