Add a function for showing a command whilst executing it.

This commit is contained in:
Sadie Powell 2020-01-18 14:03:18 +00:00
parent 04b5090a2f
commit 87471ab92d
4 changed files with 17 additions and 10 deletions

View File

@ -34,6 +34,7 @@ use File::Spec::Functions qw(rel2abs);
use make::console;
our @EXPORT = qw(create_directory
execute
get_cpu_count
get_version
read_config_file
@ -47,6 +48,11 @@ sub create_directory($$) {
} // 0;
}
sub execute(@) {
print_format "<|BOLD \$|> @_\n";
return system @_;
}
sub get_version {
state %version;
return %version if %version;

View File

@ -37,6 +37,7 @@ use List::Util qw(uniq);
use POSIX qw(strftime);
use lib dirname $RealDir;
use make::common;
use make::console;
my @ignored_revisions = (
@ -144,7 +145,7 @@ for my $path (@paths) {
}
}
system 'git', 'commit',
execute 'git', 'commit',
'--author', 'InspIRCd Robot <noreply@inspircd.org>',
'--message', 'Update copyright headers.',
'--', @updated;

View File

@ -40,7 +40,7 @@ use make::configure;
$ENV{INSPIRCD_DEBUG} = 3;
$ENV{INSPIRCD_VERBOSE} = 1;
system 'git', 'clean', '-dfx';
execute 'git', 'clean', '-dfx';
my @compilers = $#ARGV >= 0 ? @ARGV : qw(g++ clang++ icpc);
foreach my $compiler (@compilers) {
@ -57,19 +57,19 @@ foreach my $compiler (@compilers) {
say "Attempting to build using the $compiler compiler and the $socketengine socket engine...";
my @configure_flags;
if (defined $ENV{TEST_BUILD_MODULES}) {
system './configure', '--enable-extras', $ENV{TEST_BUILD_MODULES};
execute './configure', '--enable-extras', $ENV{TEST_BUILD_MODULES};
push @configure_flags, '--disable-auto-extras';
}
if (system './configure', '--development', '--socketengine', $socketengine, @configure_flags) {
if (execute './configure', '--development', '--socketengine', $socketengine, @configure_flags) {
say "Failed to configure using the $compiler compiler and the $socketengine socket engine!";
exit 1;
}
if (system 'make', '--jobs', get_cpu_count, 'install') {
if (execute 'make', '--jobs', get_cpu_count, 'install') {
say "Failed to compile using the $compiler compiler and the $socketengine socket engine!";
exit 1;
}
say "Building using the $compiler compiler and the $socketengine socket engine succeeded!";
}
system 'git', 'clean', '-dfx';
execute 'git', 'clean', '-dfx';
}

8
vendor/update vendored
View File

@ -57,14 +57,14 @@ while (my ($name, $info) = each $data) {
my $vendordir = catdir $RealDir, $name;
my $success = 0;
if (defined $info->{git}) {
$success ||= system 'git', 'clone', $info->{git}, $unpackdir;
$success ||= execute 'git', 'clone', $info->{git}, $unpackdir;
chomp(my $tag = `git -C $unpackdir describe --abbrev=0 --tags HEAD 2>/dev/null`) unless $success;
$success ||= system 'git', '-C', $unpackdir, 'checkout', $tag if $tag;
$success ||= execute 'git', '-C', $unpackdir, 'checkout', $tag if $tag;
chomp($info->{version} = `git -C $unpackdir describe --always --tags HEAD 2>/dev/null`);
} elsif (defined $info->{tarball}) {
my $tarball = catfile $unpackdir, basename $info->{tarball};
$success ||= system 'wget', '--output-document', $tarball, $info->{tarball};
$success ||= system 'tar', 'fx', $tarball, '-C', $unpackdir, '--strip-components', 1;
$success ||= execute 'wget', '--output-document', $tarball, $info->{tarball};
$success ||= execute 'tar', 'fx', $tarball, '-C', $unpackdir, '--strip-components', 1;
} else {
print_error "unable to update $name; no git or tarball specified!";
}