blob: 00f298e1bf012efdb2ef2dbcd36751530d56be04 [file] [log] [blame]
#**************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#**************************************************************
use lib ("$ENV{SOLARENV}/bin/modules");
use Cwd;
use par2script::check;
use par2script::files;
use par2script::globals;
use par2script::parameter;
use par2script::module;
use par2script::undefine;
use par2script::work;
####################################
# Main program
####################################
par2script::parameter::getparameter();
par2script::parameter::control_parameter();
par2script::parameter::outputparameter();
my $includes = par2script::work::setincludes($par2script::globals::includepathlist);
my $parfiles = par2script::work::setparfiles($par2script::globals::parfilelist);
par2script::work::make_complete_pathes_for_parfiles($parfiles, $includes);
print "Reading par files\n";
my $parfilecontent = par2script::work::read_all_parfiles($parfiles);
print "Collecting items\n";
par2script::work::collect_definitions($parfilecontent);
print "Collecting assigned items\n";
par2script::work::collect_assigned_gids();
# print "First control of multiple assignments\n";
# par2script::check::check_multiple_assignments();
print "Searching for Undefinitions\n";
par2script::undefine::undefine_gids($parfilecontent);
par2script::undefine::remove_complete_item("Directory", $parfilecontent);
par2script::undefine::remove_complete_item("Profile", $parfilecontent);
print "Removing assigned GIDs without definitions\n";
par2script::module::remove_undefined_gids_from_modules();
print "Adding definitions without assignment to the root\n";
par2script::module::add_to_root_module();
print "Control of multiple assignments\n";
par2script::check::check_multiple_assignments();
print "Control of definitions with missing assignments\n";
par2script::check::check_missing_assignments();
# checking the setup script
print "Checking directory definitions ...\n";
par2script::check::check_needed_directories();
par2script::check::check_directories_in_item_definitions();
print "Checking module definitions ...\n";
par2script::check::check_module_existence();
print "Checking module assignments ...\n";
par2script::check::check_moduleid_at_items();
print "Checking Root Module ...";
par2script::check::check_rootmodule();
print "Checking Shortcut assignments ...\n";
par2script::check::check_shortcut_assignments();
print "Checking missing parents ...\n";
par2script::check::check_missing_parents();
print "Shorten lines at modules\n";
par2script::module::shorten_lines_at_modules();
# Now the script can be created
print "Creating setup script\n";
my $setupscript = par2script::work::create_script();
print "Saving script\n";
par2script::files::save_file($par2script::globals::scriptname, $setupscript);
# logging, if set
if ($par2script::globals::logging)
{
par2script::files::save_file($par2script::globals::logfilename, \@par2script::globals::logfileinfo);
print "Log file written: $par2script::globals::logfilename\n";
}
####################################
# End main program
####################################