1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-16 10:20:02 +02:00
pgbackrest/build/lib/pgBackRestBuild/Build/Common.pm

147 lines
5.4 KiB
Perl
Raw Normal View History

####################################################################################################################################
# Build Constants and Functions
####################################################################################################################################
package pgBackRestBuild::Build::Common;
use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);
use English '-no_match_vars';
use Cwd qw(abs_path);
use Exporter qw(import);
our @EXPORT = qw();
use Storable qw(dclone);
use pgBackRest::Common::Log;
use pgBackRest::Common::String;
####################################################################################################################################
# Constants
####################################################################################################################################
use constant BLD_PATH => 'path';
push @EXPORT, qw(BLD_PATH);
use constant BLD_FILE => 'file';
push @EXPORT, qw(BLD_FILE);
use constant BLD_C => 'c';
push @EXPORT, qw(BLD_C);
use constant BLD_EXT => 'ext';
push @EXPORT, qw(BLD_EXT);
use constant BLD_HEADER => 'h';
push @EXPORT, qw(BLD_HEADER);
use constant BLD_CONSTANT => 'constant';
push @EXPORT, qw(BLD_CONSTANT);
use constant BLD_CONSTANT_EXPORT => 'constantExport';
push @EXPORT, qw(BLD_CONSTANT_EXPORT);
use constant BLD_CONSTANT_GROUP => 'constantGroup';
push @EXPORT, qw(BLD_CONSTANT_GROUP);
use constant BLD_CONSTANT_VALUE => 'constantValue';
push @EXPORT, qw(BLD_CONSTANT_VALUE);
use constant BLD_DATA => 'data';
push @EXPORT, qw(BLD_DATA);
use constant BLD_DECLARE => 'declare';
push @EXPORT, qw(BLD_DECLARE);
use constant BLD_ENUM => 'enum';
push @EXPORT, qw(BLD_ENUM);
use constant BLD_LIST => 'list';
push @EXPORT, qw(BLD_LIST);
use constant BLD_NAME => 'name';
push @EXPORT, qw(BLD_NAME);
use constant BLD_PATH => 'path';
push @EXPORT, qw(BLD_PATH);
use constant BLD_SOURCE => 'buildSource';
push @EXPORT, qw(BLD_SOURCE);
use constant BLD_SUMMARY => 'summary';
push @EXPORT, qw(BLD_SUMMARY);
use constant BLD_VALUE => 'value';
push @EXPORT, qw(BLD_VALUE);
####################################################################################################################################
# bldAutoWarning - warning not to modify automatically generated files directly
####################################################################################################################################
sub bldAutoWarning
{
my $strGenerator = shift;
return "Automatically generated by ${strGenerator} -- do not modify directly.";
}
push @EXPORT, qw(bldAutoWarning);
####################################################################################################################################
# bldBanner - build general banner
####################################################################################################################################
sub bldBanner
{
my $strContent = shift;
my $strGenerator = shift;
my $strBanner =
qw{/} . (qw{*} x 131) . "\n" .
trim($strContent) . "\n";
if (defined($strGenerator))
{
$strBanner .=
"\n" .
bldAutoWarning($strGenerator) . "\n";
}
$strBanner .=
(qw{*} x 131) . qw{/} . "\n";
return $strBanner;
}
push @EXPORT, qw(bldBanner);
####################################################################################################################################
# Generate an enum name from a prefix and - separated name
####################################################################################################################################
sub bldEnum
{
my $strPrefix = shift;
my $strName = shift;
my $bInitCapFirst = shift;
$bInitCapFirst = defined($bInitCapFirst) ? $bInitCapFirst : true;
my $bFirst = true;
my @stryName = split('\-', $strName);
$strName = undef;
foreach my $strPart (@stryName)
{
$strName .= ($bFirst && $bInitCapFirst) || !$bFirst ? ucfirst($strPart) : $strPart;
$bFirst = false;
}
return "${strPrefix}${strName}";
}
push @EXPORT, qw(bldEnum);
####################################################################################################################################
# Quote a list of strings
####################################################################################################################################
sub bldQuoteList
{
my $ryList = shift;
my @stryQuoteList;
foreach my $strItem (@{$ryList})
{
push(@stryQuoteList, "\"${strItem}\"");
}
return @stryQuoteList;
}
push @EXPORT, qw(bldQuoteList);
1;