Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: v3.9.0
Fetching contributors…

Cannot retrieve contributors at this time

78 lines (62 sloc) 2.356 kb
package RpmSpecProjectCreator;
# ************************************************************
# Description : An RPM .spec file Project Creator
# Author : Adam Mitz (OCI)
# Create Date : 11/23/2010
# ************************************************************
# ************************************************************
# Pragmas
# ************************************************************
use strict;
use File::Path;
use ProjectCreator;
use vars qw(@ISA);
@ISA = qw(ProjectCreator);
# ************************************************************
# Subroutine Section
# ************************************************************
sub project_file_extension {
return '.dummy';
}
# Don't actually write anything, just keep MPC internal data structures
# up-to-date as if it had been written. We don't want a .spec file for each
# MPC project because that is too fine-grained. See the corresponding
# workspace creator for the actual .spec file creation.
sub write_output_file {
my $self = shift;
my $tover = $self->get_template_override();
my @templates = $self->get_template();
@templates = ($tover) if (defined $tover);
if (scalar @templates != 1) {
return 0, 'there should be only one template';
}
my $template = $templates[0];
$self->{'current_template'} = $template;
my $name = $self->transform_file_name($self->project_file_name(undef,
$template));
$self->process_assignment('project_file', $name);
new TemplateParser($self)->collect_data();
if (defined $self->{'source_callback'}) {
my $cb = $self->{'source_callback'};
my $pjname = $self->get_assignment('project_name');
my @list = $self->get_component_list('source_files');
if (UNIVERSAL::isa($cb, 'ARRAY')) {
my @copy = @$cb;
my $s = shift(@copy);
&$s(@copy, $name, $pjname, \@list);
}
elsif (UNIVERSAL::isa($cb, 'CODE')) {
&$cb($name, $pjname, \@list);
}
else {
$self->warning("Ignoring callback: $cb.");
}
}
# Still need outdir since ProjectCreator::write_install_file (or similar)
# may depend on outdir existing before the WorkspaceCreator runs.
my $outdir = $self->get_outdir();
mkpath($outdir, 0, 0777) if ($outdir ne '.');
$self->add_file_written($name);
return 1, '';
}
1;
Jump to Line
Something went wrong with that request. Please try again.