NAME
Ixchel - Automate various sys admin stuff.
VERSION
Version 0.12.2
METHODS
new
Initiates a new instance of Ixchel.
One option argument is taken and that is a hash ref named config.
my $ixchel=Ixchel->new( config=>$config );
If config is defined, it will be merged with Ixchel::DefaultConfig via Hash::Merge using the following behavior.
{
'SCALAR' => {
'SCALAR' => sub { $_[1] },
'ARRAY' => sub { [ $_[0], @{ $_[1] } ] },
'HASH' => sub { $_[1] },
},
'ARRAY' => {
'SCALAR' => sub { $_[1] },
'ARRAY' => sub { [ @{ $_[1] } ] },
'HASH' => sub { $_[1] },
},
'HASH' => {
'SCALAR' => sub { $_[1] },
'ARRAY' => sub { [ values %{ $_[0] }, @{ $_[1] } ] },
'HASH' => sub { Hash::Merge::_merge_hashes( $_[0], $_[1] ) },
},
}
Using this, the passed config will be merged into the default config. Worth noting that any arrays in the default config will be completely replaced by the array from the passed config.
action
The action to perform.
- action :: The action to perform. This a required variable.
Default :: undef
- opts :: What to pass for opts. If not defined, GetOptions will be used to parse the options
based on the options as defined by the action in question. If passing one manually this
should be be a hash ref as would be return via GetOptions.
Default :: undef
- argv :: What to use for ARGV instead of @ARGV.
Default :: undef
- no_die_on_error :: If the return from the action is a hash ref, check if $returned->{errors} is a array
if it is then it will die with those be used in the die message.
Default :: 1
So if you want to render the template akin to '-a template -t extend_logsize' you can do it like below.
my $rendered_template=$ixchel->action( action=>'template', opts=>{ t=>'extend_logsize' });
Now if we want to pass '--np' to not print it, we would do it like below.
my $rendered_template=$ixchel->action( action=>'template', opts=>{ t=>'extend_logsize', np=>1 });
If the following values are defined, the matching ENVs are set.
.proxy.ftp -> FTP_PROXY, ftp_proxy
.proxy.http -> HTTP_PROXY, http_proxy
.proxy.https -> HTTPS_PROXY, https_proxy
.perl.cpanm_home -> PERL_CPANM_HOME
Additionally any of the variables defined under .env will also be set. So .env.TMPDIR will set $ENV{TMPDIR}.
AUTHOR
Zane C. Bowers-Hadley, <vvelox at vvelox.net>
BUGS
Please report any bugs or feature requests to bug-ixchel at rt.cpan.org
, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Ixchel. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Ixchel
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
Search CPAN
Github
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
This software is Copyright (c) 2023 by Zane C. Bowers-Hadley.
This is free software, licensed under:
The GNU General Public License, Version 3, June 2007