From f8114ef6051e0fb5cb02d97ea468a2da7d2047fa Mon Sep 17 00:00:00 2001 Date: Wed, 20 Oct 2010 08:20:22 -0700 Subject: [PATCH] Created installer::languages::shorten_language_string Replaced similar code in other locations to point to here. Used Digest::MD5 instead of spawning a separate os process. This patch is public domain. --- solenv/bin/make_installer.pl | 8 +------- solenv/bin/modules/installer/control.pm | 12 ++---------- solenv/bin/modules/installer/languages.pm | 15 +++++++++++++++ solenv/bin/modules/installer/systemactions.pm | 12 ++---------- 4 files changed, 20 insertions(+), 27 deletions(-) diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 9c6c771..6d0cfee 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -660,13 +660,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $loglanguagestring = $$languagestringref; my $loglanguagestring_orig = $loglanguagestring; - if (length($loglanguagestring) > $installer::globals::max_lang_length) - { - my $number_of_languages = installer::systemactions::get_number_of_langs($loglanguagestring); - chomp(my $shorter = `echo $loglanguagestring | md5sum | sed -e "s/ .*//g"`); - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $loglanguagestring = "lang_" . $number_of_languages . "_id_" . $id; - } + $loglanguagestring = installer::languages::shorten_language_string($loglanguagestring); $installer::globals::logfilename = "log_" . $installer::globals::build; if ( $logminor ne "" ) { $installer::globals::logfilename .= "_" . $logminor; } diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm index 5f7c2ca..0d9e238 100644 --- a/solenv/bin/modules/installer/control.pm +++ b/solenv/bin/modules/installer/control.pm @@ -32,6 +32,7 @@ use installer::converter; use installer::exiter; use installer::files; use installer::globals; +use installer::languages; use installer::pathanalyzer; use installer::scriptitems; use installer::systemactions; @@ -409,16 +410,7 @@ sub determine_ship_directory my $shipdrive = $ENV{'SHIPDRIVE'}; - my $languagestring = $$languagesref; - - if (length($languagestring) > $installer::globals::max_lang_length ) - { - my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring); - chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - # $languagestring = $shorter; - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $languagestring = "lang_" . $number_of_languages . "_id_" . $id; - } + my $languagestring = installer::languages::shorten_language_string($$languagesref); my $productstring = $installer::globals::product; my $productsubdir = ""; diff --git a/solenv/bin/modules/installer/languages.pm b/solenv/bin/modules/installer/languages.pm index 84828bf..29f3b78 100644 --- a/solenv/bin/modules/installer/languages.pm +++ b/solenv/bin/modules/installer/languages.pm @@ -27,6 +27,7 @@ package installer::languages; +use Digest::MD5; use installer::converter; use installer::existence; use installer::exiter; @@ -376,4 +377,18 @@ sub get_java_language return $javalanguage; } +sub shorten_language_string { + chomp; + my $languagestring = shift; + if (length($languagestring) > $installer::globals::max_lang_length ) + { + my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring); + my $shorter = Digest::MD5->new($languagestring); + $shorter =~s/ .*//g; + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $languagestring = "lang_" . $number_of_languages . "_id_" . $id; + } + return $languagestring; +} + 1; diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index e3ef783..0c39477 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -32,6 +32,7 @@ use File::Copy; use installer::converter; use installer::exiter; use installer::globals; +use installer::languages; use installer::pathanalyzer; use installer::remover; @@ -397,16 +398,7 @@ sub create_directories if (!($locallanguagesref eq "" )) # this will be a path like "01_49", for Profiles and ConfigurationFiles, idt-Files { - my $languagestring = $$languagesref; - - if (length($languagestring) > $installer::globals::max_lang_length ) - { - my $number_of_languages = get_number_of_langs($languagestring); - chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - # $languagestring = $shorter; - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $languagestring = "lang_" . $number_of_languages . "_id_" . $id; - } + my $languagestring = installer:languages::shorten_language_string($$languagesref); $path = $path . $languagestring . $installer::globals::separator; create_directory($path); -- 1.6.2.5