internetradio2.0/cenrep/gather_cenrep_to_storable.pl
changeset 14 896e9dbc5f19
parent 12 608f67c22514
child 15 065198191975
--- a/internetradio2.0/cenrep/gather_cenrep_to_storable.pl	Tue Jul 06 14:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#####################################
-# Run with -h to get help
-######################################
-use strict;
-use lib   ".";
-use Win32::OLE qw(in with);
-use Win32::OLE::Const 'Microsoft Excel';
-use Cwd;
-use Getopt::Long;
-use File::Copy;
-use excel_support;  # Own perl module that contains the reading of cenrep key-sheets
-use cenrep_keys;  # Own perl module that contains the reading of cenrep key-sheets
-use Storable qw(nstore_fd);
-use Data::Dumper;
-
-
-###########################################################################
-# Function that gets a dir as parameter and reads the list of excel files from the
-# given directory.
-#
-# Params: a directory name
-#
-# Return value: a reference to a list of filenames.
-###########################################################################
-sub getExcelFilesFromDir
-{
-    my $dir = shift;
-    
-    # the given dir should be relative to the dir, where the script is executed.
-    if($dir !~ /^[\\\/]/ && $dir !~ /^[A-Za-z]:/)
-    {
-	$dir =  cwd . "\\$dir"; 
-    }
-    my @files;
-    @files = <$dir\\*.xls >;
-   
-    return \@files;
-}
-
-
-###################################################
-# Function that reads the file names from the given file.
-# THe information is read from Column A and 1st empty row indicates
-# end of input.
-#
-# Params: fileNameRead, refToExcelApp
-###################################################
-sub getExcelFilesFromFile
-{
-    my $file = shift;
-    
-    my @fileList;
-    # ----------------------------------------------------------------  
-    # Open the file
-    # ----------------------------------------------------------------  
-    open(IN,$file) || die "Unable to open: $file";
-
-    #------------------------------------------------------------
-    # Read file line by line
-    #------------------------------------------------------------
-    while(<IN>)
-    {
-	my $fileWithPath = $_;
-	chomp($fileWithPath);
-
-	if(! -f $fileWithPath)
-	{
-	    print STDERR "Warning: input file not found: $fileWithPath\n";
-	}
-	else
-	{
-	    push(@fileList,$fileWithPath);
-	}
-    }
-	
-    return \@fileList;
-}
-
-
-###########################################################################
-# Main function, 
-###########################################################################
-sub readConfig
-{
-    my $refToExcelFiles = shift;
-    my $refToExcel = shift;
-    
-    my %reshHash;
-    my $refToWorkSheet;
-    
-    # Loop through each found excel sheet. This will open one file after each other
-    # and parse information into the hashes defined above.
-    foreach my $file ( @{$refToExcelFiles} ) 
-    {
-	print "   Reading: $file\n";
-
-	# ----------------------------------------------------------------  
-	# Open the file
-	# ----------------------------------------------------------------  
-	my $refToWb = openWorkbook( $file,$refToExcel);
-
-	# ----------------------------------------------------------------  
-	# Check, that the template version is the one we support. If not
-	# the file is skipped and warning is written to user.
-	# ----------------------------------------------------------------  
-#  	if( isSupported($refToWb) == 0)
-#  	{
-#  	    # "delete" the workbooks, this closes the excel application
-#  	    undef $$refToWb;
-#  	    undef $refToWb;
-#  	    print STDERR "Warning: Unsupported template version in file: $file\n";
-#  	    next;
-#  	}
-
-	
-	# ----------------------------------------------------------------  
-	# Read the information from the worksheets
-	# ----------------------------------------------------------------
-	$refToWorkSheet = getWorkSheet( $refToWb,"Key values");
-	readCentrepKeyInfo( $refToWorkSheet,\%reshHash,undef,undef,$file);
-
-#  	for( my $i = 0; $i < $$refToWb->Worksheets->Count; $i++)
-#  	{
-#  	    my $workSheet = $$refToWb->WorkSheets($i + 1);
-#  	    $refToWorkSheet = getWorkSheet( $refToWb,$workSheet->Name);
-#  	    readCentrepKeyInfo( $refToWorkSheet,\%reshHash);
-#  	}
-	# "delete" the workbooks, this closes the excel application
-	$$refToWb->Close(0);
-	undef $$refToWb;
-	undef $refToWb;
-    }
-
-#    $Data::Dumper::Indent = 1;
-#     print Dumper(%reshHash);
-#      exit 1;
-
-    return \%reshHash;
-}
-
-###########################################################################
-# Shows help.
-#
-# Params: -
-#
-# Return: -
-#
-###########################################################################
-sub usage
-{
-    $0 =~ /([0-9a-zA-Z\_\.]+)$/;
-    my $filename = $1;
-    print "\n";
-    print "\n";
-    print "This script is intended to be used to generate ini-files for Central Repository\n";
-    print "based on the information in the cenrep key excel-sheet(s). These sheets define\n";
-    print "the content of the ini-files.\n";
-    print "\n";
-    print "Rough discruption on how the values for the ini-files are determinated:\n";
-    print "1) Content of sheets identified by -d or -s are read.\n";
-    print "2) From sheets read in step 1 the information is parsed based on the\n";
-    print "   information specified by -p, -r and -v\n";
-    print "3) [optional] Default values specified by the steps 1 and 2 can be\n";
-    print "    overriden by defining information in other sheets, specified by parameters\n";
-    print "    -vd,-vs and -vv\n";
-    print "\n";
-    print "\n";
-    print "Usage:\n";
-    print "  $filename [-h|-help]\n";
-    print "                (-d <dirName> | -s <sourceFilename>)\n";
-    print "                [ -f <resultFile>]\n";
-    print "\n";
-    print "Options:\n";
-    print " -h                  : Show this help\n";
-    print " -help               : Show this help\n";
-    print " -f <resultFile>     : The storable file name.\n";
-    print " -d <dirName>        : The dir, which contains the sheets, which are read. Relative path to the\n";
-    print "                       current dir or absoluth path. NOTE: the dir name can't contain any spaces.\n";
-    print " -s <sourceFilename>       : The text filename, which contains sheet name with absoluth\n";
-    print "                             path names (1/row)\n";
-    print "                              (see rough description above) Optional.\n";
-    print "\n";
-    print "\n";
-    print "You have specify either -d or -s, but not both at the same time.\n";
-    print "\n";
-    print "\n";
-    print "\n";
-}
-###########################################################################
-# Parses the command line parameters from ARGV
-#
-# Params: -
-#
-# Return: -		    
-#
-###########################################################################
-sub parseCmdLine
-{
-    my $sheetDirname = "";
-    my $sheetFilename = "";
-    my $resultFilename = "";
-    my $showHelp = 0;
-
-    if( ! GetOptions('d:s'      => \$sheetDirname,
-		     's:s'      => \$sheetFilename,
-		     'f:s'      => \$resultFilename,
-		     'h'        => \$showHelp,
-		     'help'     => \$showHelp,
-		     '<>'       => \&usage))
-    {
-	usage();
-	exit(1);
-    }
-    
-    my $error = 0;
-    if($sheetDirname ne "" and $sheetFilename ne "")
-    {
-	print "\nError: The -s and -d arguments can't be specified at the same time.\n";
-	$error = 1;
-    }
-    elsif($sheetDirname eq "" and $sheetFilename eq "")
-    {
-	print "\n\nError: You have to specify either the -d or -s argument.\n";
-	$error = 1;
-    }
-
-    if($resultFilename eq "")
-    {
-	print "\nError: You have to specify -rf parameter.\n";
-	$error = 1;
-    }
-    
-    if($error)
-    {
-	usage();
-	exit(1);
-    }
-    elsif($showHelp)
-    {
-	usage();
-    }
-    
-    return ($sheetDirname,$sheetFilename,$resultFilename);
-}
-
-
-###########################################################################
-# reads either default config or variant config into the result hash.
-# Note that the variant hash can't delete any keys, just override them.
-###########################################################################
-sub readSingleConfig
-{
-    my $refToExcel      = shift;
-    my $sheetDirname    = shift;
-    my $sheetFilename   = shift;
-    
-    #-----------------------------------------------------------------
-    # There are 2 options how the user can give the if-sheet names handled:
-    # 1) He gives the directory where all files are located
-    # 2) He gives an excel sheet, which contains all the files in column A.
-    #-----------------------------------------------------------------
-    my $refToExcelFilesList;
-
-    if($sheetDirname !~ /^\s*$/)
-    {
-	# Read the filenames from the directory given
-	$refToExcelFilesList = getExcelFilesFromDir $sheetDirname;
-    }
-    elsif($sheetFilename !~ /^\s*$/)
-    {
-	# Read the filenames from the excel file given
-	$refToExcelFilesList = getExcelFilesFromFile $sheetFilename;
-    }
-    else
-    {
-	# nothing to do, just exit function
-	return;
-    }
-    #-----------------------------------------------------------------
-    # The main function that parses the information from sheets
-    #-----------------------------------------------------------------
-
-    return readConfig($refToExcelFilesList,$refToExcel);
-}
-
-###################################################
-# Actual program
-###################################################
-my($sheetDirname,$sheetFilename,$resultFilename) = parseCmdLine;
-
-# ----------------------------------------------------------------  
-# Get excel application
-# ----------------------------------------------------------------  
-my $refToExcel = getExcelApp();
-
-#-----------------------------------------------------------------
-# read the default configuration hash
-#-----------------------------------------------------------------
-my $refToResultHash = readSingleConfig($refToExcel,$sheetDirname,$sheetFilename);
-
-#-----------------------------------------------------------------
-# quit excel and "delete" the instances.
-#-----------------------------------------------------------------
-quitExcelApp($refToExcel);
-
-
-open OUT, ">$resultFilename" or die "Unable to open $resultFilename: $!";
-binmode OUT;
-nstore_fd $refToResultHash, \*OUT;
-close OUT;
-