summaryrefslogtreecommitdiff
path: root/postprocess
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-11-07 15:12:17 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-11-08 13:26:55 +0000
commit144fbefbf858ab6a680437fa69f406967b6ae9e3 (patch)
treed7cc43032bedb4c25b2c96cccb4fb7959f32f223 /postprocess
parent0ab6421028ba715dfc7c152d0185333e0a5f79f9 (diff)
refactor packconfig to hopefully be unchanged, but extendable
Change-Id: I25fe2f7e3277bd9a9509b0bec81f8d76b2bf8c8f
Diffstat (limited to 'postprocess')
-rw-r--r--postprocess/packconfig/packconfig.pl79
1 files changed, 43 insertions, 36 deletions
diff --git a/postprocess/packconfig/packconfig.pl b/postprocess/packconfig/packconfig.pl
index cb8fb89433b0..59a69ade4459 100644
--- a/postprocess/packconfig/packconfig.pl
+++ b/postprocess/packconfig/packconfig.pl
@@ -31,12 +31,10 @@ use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
#### globals ####
-my $out_file; # path to output archive
-my $tmp_out_file; # path to temporary output file
+my $out_path; # path to output archives in
my $files_path; # path to look for desired files
my $verbose; # be verbose
my $extra_verbose; # be extra verbose
-my $do_rebuild = 0; # is rebuilding zipfile required?
#### script id #####
@@ -46,21 +44,37 @@ my $do_rebuild = 0; # is rebuilding zipfile required?
parse_options();
my %files_hash;
-my $file_ref = get_files();
+my $file_ref = get_core_files(\%files_hash);
+my $out_file="$out_path"."uiconfig.zip";
+packzip(\%files_hash, $out_file);
+exit(0);
-$do_rebuild = is_file_newer(\%files_hash) if $do_rebuild == 0;
+#### subroutines ####
-if ( $do_rebuild == 1 ) {
- create_zip_archive(\%files_hash);
- replace_file($tmp_out_file, $out_file);
- print_message("packing $out_file finished.");
-} else {
- print_message("$out_file up to date. nothing to do.");
-}
+sub packzip
+{
+ my $file_hash_ref = shift;
+ my $output_file = shift;
-exit(0);
+ # Check if output_file can be written.
+ my $out_dir = dirname($output_file);
+ print_error("no such directory: '$out_dir'", 2) if ! -d $out_dir;
+ print_error("can't search directory: '$out_dir'", 2) if ! -x $out_dir;
+ print_error("directory is not writable: '$out_dir'", 2) if ! -w $out_dir;
-#### subroutines ####
+ # is rebuilding zipfile required?
+ my $do_rebuild = is_file_newer($file_hash_ref, $output_file);
+
+ if ( $do_rebuild == 1 ) {
+ #temporary intermediate output file
+ my $tmp_out_file="$output_file"."$$".$ENV{INPATH};
+ create_zip_archive($file_hash_ref, $tmp_out_file);
+ replace_file($tmp_out_file, $output_file);
+ print_message("packing $output_file finished.");
+ } else {
+ print_message("$output_file up to date. nothing to do.");
+ }
+}
sub parse_options
{
@@ -68,28 +82,18 @@ sub parse_options
my $p = Getopt::Long::Parser->new();
my $success =$p->getoptions(
'-h' => \$opt_help,
- '-o=s' => \$out_file,
+ '-o=s' => \$out_path,
'-i=s' => \$files_path,
'-v' => \$verbose,
'-vv' => \$extra_verbose
);
- if ( $opt_help || !$success || !$out_file || !$files_path )
+ if ( $opt_help || !$success || !$out_path || !$files_path )
{
usage();
exit(1);
}
- #define intermediate output file
- $tmp_out_file="$out_file"."$$".$ENV{INPATH};
- # Sanity checks.
-
- # Check if out_file can be written.
- my $out_dir = dirname($out_file);
- print_error("no such directory: '$out_dir'", 2) if ! -d $out_dir;
- print_error("can't search directory: '$out_dir'", 2) if ! -x $out_dir;
- print_error("directory is not writable: '$out_dir'", 2) if ! -w $out_dir;
-
# Check paths.
foreach ($files_path) {
print_error("no such directory: '$_'", 2) if ! -d $_;
@@ -97,11 +101,12 @@ sub parse_options
}
}
-sub get_files
+sub get_core_files
{
local @main::file_list;
- find_files(\%files_hash);
+ my $files_hash_ref = shift;
+ find_core_files($files_hash_ref);
if ( !keys %files_hash ) {
print_error("can't find any image lists in '$files_path'", 3);
@@ -110,7 +115,7 @@ sub get_files
return wantarray ? @main::file_list : \@main::file_list;
}
-sub find_files
+sub find_core_files
{
my $files_hash_ref = shift;
find({ wanted => \&wanted, no_chdir => 0 }, "$files_path");
@@ -132,12 +137,13 @@ sub wanted
sub is_file_newer
{
my $test_hash_ref = shift;
+ my $zip_file = shift;
my $reference_stamp = 0;
- print_message("checking timestamps ...") if $verbose;
- if ( -e $out_file ) {
- $reference_stamp = (stat($out_file))[9];
- print_message("found $out_file with $reference_stamp ...") if $verbose;
+ print_message("checking timestamps for $zip_file ...") if $verbose;
+ if ( -e $zip_file ) {
+ $reference_stamp = (stat($zip_file))[9];
+ print_message("found $zip_file with $reference_stamp ...") if $verbose;
}
return 1 if $reference_stamp == 0;
@@ -155,6 +161,7 @@ sub is_file_newer
sub create_zip_archive
{
my $zip_hash_ref = shift;
+ my $zip_output_file = shift;
print_message("creating config archive ...") if $verbose;
my $zip = Archive::Zip->new();
@@ -173,9 +180,9 @@ sub create_zip_archive
print_error("can't add file '$path' to config zip archive: $!", 5);
}
}
- my $status = $zip->writeToFileNamed($tmp_out_file);
+ my $status = $zip->writeToFileNamed($zip_output_file);
if ( $status != AZ_OK ) {
- print_error("write image zip archive '$tmp_out_file' failed. Reason: $status", 6);
+ print_error("write image zip archive '$zip_output_file' failed. Reason: $status", 6);
}
return;
}
@@ -235,7 +242,7 @@ sub usage
print STDERR "Creates archive of userinterface config files\n";
print STDERR "Options:\n";
print STDERR " -h print this help\n";
- print STDERR " -o out_file path to output archive\n";
+ print STDERR " -o out_path path to output archive\n";
print STDERR " -i file_path path to directory containing the config files\n";
print STDERR " -v verbose\n";
print STDERR " -vv very verbose\n";