From ff30da3ebb107421372e2a1a6d37f7c189667f2b Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Wed, 10 Jan 2018 09:03:20 +0000 Subject: Simplify run_() helper function and minimise direct calls to system(). --- lib/MGA/DrakISO/BuildMedia.pm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'lib/MGA/DrakISO/BuildMedia.pm') diff --git a/lib/MGA/DrakISO/BuildMedia.pm b/lib/MGA/DrakISO/BuildMedia.pm index b2171b4..d9bc0fc 100644 --- a/lib/MGA/DrakISO/BuildMedia.pm +++ b/lib/MGA/DrakISO/BuildMedia.pm @@ -34,6 +34,10 @@ use urpm::media; use MGA::DrakISO::ClassicBuild; use MGA::DrakISO::Utils; +use Exporter; +our @ISA = qw(Exporter); +our @EXPORT = qw(prepare_media); + ############################################################################### # Global Variables ############################################################################### @@ -484,9 +488,9 @@ sub build_installer_media { copy_or_link($repo_media_dir . '/media_info/rpmsrate', $media_dir . 'media_info/rpmsrate'); # Generate the remaining media info. - my $silent = $::verbose < 3 ? ' -s' : ''; + my $silent = $::verbose < 3; print "-- messages from gendistrib -----------------------\n" if !$silent; - system("gendistrib $silent $arch_dir\n") == 0 + run_('gendistrib', if_($silent, '-s'), $arch_dir) or die "ERROR: gendistrib failed to generate the media info\n"; print "---------------------------------------------------\n" if !$silent; } @@ -526,11 +530,11 @@ sub check_installer_media { my $arch = $build->{settings}{arch}; my $media_dir = $build->get_build_dir('files/' . $arch . '/media'); my $log_file = $build->get_build_dir('tmp') . '/rpmcheck.log'; - system("zcat -q $media_dir/$class/media_info/hdlist.cz | rpmcheck -explain -failures > $log_file") == 0 + run_("zcat -q $media_dir/$class/media_info/hdlist.cz | rpmcheck -explain -failures > $log_file") or die "ERROR: failed to run rpmcheck\n"; - if (system("grep -q FAILED $log_file") == 0) { - system("cat $log_file"); + if (system('grep', '-q', 'FAILED', $log_file) == 0) { + system('cat', $log_file); $::force or die "ERROR: some package dependencies are not satisfied\n"; print "NOTE: **** continuing due to --force option ****\n"; print "NOTE: **** this ISO is not suitable for final release ****\n"; @@ -602,7 +606,7 @@ sub run_urpm { my $urpmi_root = '--urpmi-root ' . $build->get_chroot_dir; - my $error = system("LC_ALL=C sudo $cmd $urpmi_root $parameters"); + my $error = system("LC_ALL=C $sudo $cmd $urpmi_root $parameters"); $error == 0 || $o_not_fatal or die "ERROR: $cmd command failed\n"; $error; } -- cgit v1.2.1