#!/usr/bin/perl use strict; use warnings; use Carp; use File::Spec; use HTML::Template; use ::Config; # ------------------------------------------------- if () { print STDERR "Processing CGI::Application-based modules:\n"; } # Generate the main menu from main.menu.tmpl. my($config) = ::Config -> new(); my(@component) = split(/::/, lc ''); my($io_dir_name) = File::Spec -> catdir('htdocs', 'assets', 'templates', @component); my($io_file_name) = File::Spec -> catfile($io_dir_name, 'main.menu.tmpl'); my($template) = HTML::Template -> new(filename => $io_file_name); my(@param); push @param, { form_action => $config -> get_form_action(), module => '', table => '', }; $template -> param(module_loop =>\@param); if () { print STDERR "Updating $io_file_name\n"; } chmod 0644, $io_file_name; open(OUT, "> $io_file_name") || die "Can't open(> $io_file_name):$ !"; print OUT $template -> output(); close OUT; # Generate CGI/CGIApp/*.pm (1 per table). # The next 4 have to have their own declarations. We can't put them inside module_loop, # because then they would have to 'belong' to module_loop. my($dir_name) = ''; my($prefix) = ''; my($tmpl_path) = ''; my($verbose) = ; my($output_file_name); my($table_name); $output_file_name = File::Spec -> catfile($dir_name, '.pm'); $template = HTML::Template -> new(filename => File::Spec -> catfile($tmpl_path, 'run.mode.pm.tmpl') ); $table_name = lc ''; $table_name =~ s/_//g; # Zap '_' to keep Rose happy. $template -> param(iterator => $table_name); $template -> param(module => ''); $template -> param(package => "$prefix\::CGI\::CGIApp"); $template -> param(prefix => $prefix); $template -> param(table => ''); open(OUT, "> $output_file_name") || croak "Can't open(> $output_file_name): $!"; print OUT $template -> output(); close OUT; if ($verbose) { print STDERR "Generated $output_file_name\n"; } if () { print STDERR "Success\n"; }