The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Module::Setup::Path::Flavor;
use strict;
use warnings;
use base 'Module::Setup::Path::Base';

use YAML ();

use Module::Setup::Path::Config;
use Module::Setup::Path::Plugins;
use Module::Setup::Path::Template;
use Module::Setup::Path::Additional;

sub new {
    my($class, @path) = @_;
    my $self = $class->SUPER::new(@path);

    $self->{config}     = Module::Setup::Path::Config->new($self->path_to('config.yaml'));
    $self->{plugins}    = Module::Setup::Path::Plugins->new($self->path_to('plugins'));
    $self->{template}   = Module::Setup::Path::Template->new($self->path_to('template'));
    $self->{additional} = Module::Setup::Path::Additional->new($self->path_to('additional'));

    $self;
}

sub config   { shift->{config} }
sub plugins  { shift->{plugins} }
sub template { shift->{template} }
sub additional { shift->{additional} }

sub create_flavor {
    my($self, $config) = @_;

    $self->path->mkpath;
    $self->plugins->path->mkpath;
    $self->template->path->mkpath;
    $self->additional->path->mkpath;
    YAML::DumpFile($self->config->path, $config);
}

1;