The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Hostfile::Manager - Manage a hostfile by composing multiple fragments into a whole.

SYNOPSIS

        use Hostfile::Manager;

        $manager = Hostfile::Manager->new;
        $manager->enable_fragment($fragment_name);
        $manager->write_hostfile;

ACCESSORS

Str path_prefix( [Str $prefix] )

Defines the prefix that will be searched for hostfile fragments. Defaults to '/etc/hostfiles/'.

Str hostfile_path( [Str $path] )

Defines the path to the hostfile to manage. Defaults to '/etc/hosts'.

Str hostfile

The contents of the hostfile under management.

HashRef fragments

The available hostfile fragments.

Array fragment_list

A list of the names of available fragments.

Str get_fragment( Str $fragment_name )

The contents of an individual hostfile fragment.

METHODS

Hostfile::Manager->new( [\%options] )

Create a new manager instance. Available options are path_prefix and hostfile_path, listed in the ACCESSORS section.

Bool write_hostfile

Write the contents of the hostfile to disk.

Bool fragment_enabled( Str $fragment_name )

Test whether a named fragment is enabled in the hostfile under management.

enable_fragment( Str $fragment_name )

Enable a named fragment. If the fragment is currently enabled, it will be disabled first, removing any modifications that may have been made out-of-band.

disable_fragment( Str $fragment_name )

Disable a named fragment.

toggle_fragment( Str $fragment_name )

Enable a fragment if it is disabled, disable it otherwise.

Str fragment_status_flag( Str $fragment_name )

Returns a string indicating the current status of a named fragment.

"+"

The named fragment is enabled.

"*"

The named fragment is enabled and has been modified in the sourced hostfile.

" "

The named fragment is not enabled.

LICENSE

Copyright (c) 2010-11 Anthony J. Mirabella. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Anthony J. Mirabella <mirabeaj AT gmail DOT com>