NAME

Path::Maker - make files and directories as scaffolding

SYNOPSIS

use Path::Maker;

my $maker = Path::Maker->new(base_dir => $ENV{HOME});
$maker->render_to_file('gitconfig.mt' => '.gitconfig', $ENV{USER});
$maker->create_dir('.swap');
$maker->write_file('.vimrc', "set directory=~/.swap\n");
$maker->chmod('.ssh/id_rsa', 0400);

__DATA__

@@ gitconfig.mt
[user]
    name = <?= $_[0] ?>

DESCRIPTION

Path::Maker helps you make files or directories as scaffolding. When I wrote a CLI script for mojo, I found that Mojolicious::Command is very useful. This module provides some functionality of that module with template syntax Text::MicroTemplate.

CONSTRUCTOR

Constructor $maker = Path::Maker->new(%options) accepts following options:

base_dir

If relative path is specified to methods chmod, create_dir, render_to_file or write_file, then it is assumed to relative to the base_dir. Default: current working directory.

package

Whose __DATA__ section to be read. Default: caller.

template_header

If template_header is provided, it is inserted to every template files. See eg/template-header.pl for example.

template_dir

By default, Path::Maker searches for template files in __DATA__ section. If template_dir is provided, it also searches for template files in template_dir. See eg/module-scaffold.pl for example.

METHOD

$maker->chmod($path, $mode)

Change permission of $path.

$maker->create_dir($dir)

Create directory $dir.

$string = $maker->render($template_name, @arg)

Render $template_name with @arg.

$maker->render_to_file($template_name, $file, @arg)

Render $template_name to $file with @arg.

$maker->write_file($file, $string)

Write $string to $file.

SEE ALSO

Mojolicious::Command

Text::MicroTemplate

Text::MicroTemplate::DataSection

LICENSE

Copyright (C) Shoichi Kaji.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Shoichi Kaji <skaji@cpan.org>