NAME

Setup::Unix::Group - Make sure a Unix group exists

VERSION

version 0.01

SYNOPSIS

use Setup::Unix::Group 'setup_unix_group';

# simple usage (doesn't save undo data)
my $res = setup_unix_group name => 'foo';
die unless $res->[0] == 200 || $res->[0] == 304;

# perform setup and save undo data (undo data should be serializable)
$res = setup_unix_group ..., -undo_action => 'do';
die unless $res->[0] == 200 || $res->[0] == 304;
my $undo_data = $res->[3]{undo_data};

# perform undo
$res = setup_unix_group ..., -undo_action => "undo", -undo_data=>$undo_data;
die unless $res->[0] == 200 || $res->[0] == 304;

DESCRIPTION

This module provides one function: setup_unix_group.

This module is part of the Setup modules family.

This module uses Log::Any logging framework.

This module's functions have Sub::Spec specs.

THE SETUP MODULES FAMILY

I use the Setup:: namespace for the Setup modules family. See Setup::File for more details on the goals, characteristics, and implementation of Setup modules family.

FUNCTIONS

None are exported by default, but they are exportable.

setup_unix_group(%args) -> [STATUS_CODE, ERR_MSG, RESULT]

Makes sure a Unix group exists.

On do, will create Unix group if not already exists.

On undo, will delete Unix group previously created.

Returns a 3-element arrayref. STATUS_CODE is 200 on success, or an error code between 3xx-5xx (just like in HTTP). ERR_MSG is a string containing error message, RESULT is the actual result.

This function supports undo operation. See Sub::Spec::Clause::features for details on how to perform do/undo/redo.

This function supports dry-run (simulation) mode. To run in dry-run mode, add argument -dry_run => 1.

Arguments (* denotes required arguments):

  • min_new_gid => int (default 1)

    When creating new group, specify minimum GID.

  • name* => str

    Group name.

SEE ALSO

Setup::Unix::User.

Other modules in Setup:: namespace.

AUTHOR

Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Steven Haryanto.

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