#!/usr/bin/perl -w
# repath.pl is part of building scripts of the Kiax project
# used for replacing path strings in src/src.pro file.
#
# usage: repath.pl --prefix=<path>|--targetos=<os> --listos=1
# Author: Borislav Mitev <morbid_viper@tkzs.org>, 2005
use strict;
my $fnSrcpro = "src/src.pro";
my $fnMakefile = "bin/Makefile";
my %OSpaths = (
suse => {
icons => "/opt/kde3",
translations => "/opt/kde3",
binary => "/opt/kde3",
ICONS_PATH => "/opt/kde3",
I18N_DIRECTORY => "/opt/kde3",
DEST_PATH => "/opt/kde3"
},
redhat => {
icons => "/usr",
translations => "/usr",
binary => "/usr",
ICONS_PATH => "/usr",
I18N_DIRECTORY => "/usr",
DEST_PATH => "/usr"
},
debian => {
icons => "/usr/local",
translations => "/usr/local",
binary => "/usr/local",
ICONS_PATH => "/usr/local",
I18N_DIRECTORY => "/usr/local",
DEST_PATH => "/usr/local"
},
slackware => {
icons => "/usr/local",
translations => "/usr/local",
binary => "/usr/local",
ICONS_PATH => "/usr/local",
I18N_DIRECTORY => "/usr/local",
DEST_PATH => "/usr/local"
},
mandrake => {
icons => "/usr",
translations => "/usr",
binary => "/usr",
ICONS_PATH => "/usr",
I18N_DIRECTORY => "/usr",
DEST_PATH => "/usr"
},
home => {
icons => "$ENV{HOME}/kiax/icons",
translations => "$ENV{HOME}/kiax/i18n",
binary => "$ENV{HOME}/kiax",
ICONS_PATH => "$ENV{HOME}/kiax/icons",
I18N_DIRECTORY => "$ENV{HOME}/kiax/i18n",
DEST_PATH => "$ENV{HOME}/kiax"
}
);
my ($i, %params);
print "No prefix or targetos is given.\nLeaving src/src.pro untouched.\n" and exit(0) unless (@ARGV);
for($i = 0; $i < @ARGV; $i++){
$ARGV[$i] =~ m/^--(.+?)=(.*)/;
$params{$1} = $2;
}
open FH, $fnSrcpro or die "Can't open file $fnSrcpro: $!\n";
undef $/;
my $proFile = <FH>;
$/ = "\n";
close FH;
if($params{'listos'}){
$, = ", ";
print "Supported OS: ";
print keys(%OSpaths);
print "\n";
}elsif($params{'targetos'}){
$proFile =~ s|icons\.path = .*?\n|icons.path = $OSpaths{$params{'targetos'}}{'icons'}/share/kiax/icons/\n|;
$proFile =~ s|translations\.path = .*?\n|translations.path = $OSpaths{$params{'targetos'}}{'translations'}/share/kiax/i18n/\n|;
$proFile =~ s|binary\.path = .*?\n|binary.path = $OSpaths{$params{'targetos'}}{'binary'}/bin/\n|;
$proFile =~ s|ICONS_PATH=\\"./icons/\\"|ICONS_PATH=\\"$OSpaths{$params{'targetos'}}{'ICONS_PATH'}/share/kiax/icons/\\"|;
$proFile =~ s|I18N_DIRECTORY=\\"./i18n/\\"|I18N_DIRECTORY=\\"$OSpaths{$params{'targetos'}}{'I18N_DIRECTORY'}/share/kiax/i18n/\\"|;
}elsif($params{'prefix'}){
$proFile =~ s|icons\.path = .*?\n|icons.path = $params{'prefix'}/share/kiax/icons/\n|;
$proFile =~ s|translations\.path = .*?\n|translations.path = $params{'prefix'}/share/kiax/i18n/\n|;
$proFile =~ s|binary\.path = .*?\n|binary.path = $params{'prefix'}/bin/\n|;
$proFile =~ s|ICONS_PATH=\\"./icons/\\"|ICONS_PATH=\\"$params{'prefix'}/share/kiax/icons/\\"|;
$proFile =~ s|I18N_DIRECTORY=\\"./i18n/\\"|I18N_DIRECTORY=\\"$params{'prefix'}/share/kiax/i18n/\\"|;
}
open FH, ">$fnSrcpro" or die "Can't open file $fnSrcpro: $!\n";
print FH $proFile;
close FH;
open FH, $fnMakefile or die "Can't open file $fnMakefile: $!\n";
undef $/;
my $proFiles = <FH>;
$/ = "\n";
close FH;
if($params{'listos'}){
$, = ", ";
print "Supported OS: ";
print keys(%OSpaths);
print "\n";
}elsif($params{'targetos'}){
$proFiles =~ s|DEST_PATH=.*?\n|DEST_PATH=$OSpaths{$params{'targetos'}}{'binary'}/bin/\n|;
}elsif($params{'prefix'}){
$proFiles =~ s|DEST_PATH=.*?\n|DEST_PATH=$params{'prefix'}/bin/\n|;
}
open FH, ">$fnMakefile" or die "Can't open file $fnSrcpro: $!\n";
print FH $proFiles;
close FH;
syntax highlighted by Code2HTML, v. 0.9.1