NAME

App::CharmKit::Sys - system utilities

VERSION

version 1.0.5

SYNOPSIS

use charm;

or

use App::CharmKit::Sys;

apt_update();
apt_upgrade();
apt_install(['nginx-common', 'redis-server']);

DESCRIPTION

Provides system utilities such as installing packages, managing files, and more.

FUNCTIONS

spew

writes to a file, defaults to utf8

slurp

reads a file, defaults to utf8

make_dir

mkdir helper for creating directories

remove_dir

removes directories

set_owner

sets owner of directories

set_owner('ubuntu', ['/var/lib/mydb', '/etc/mydb/conf'])

getent

accesses user info from nss

Params

  • db: nss database to query

  • key: what to query

  • returns: result from execute

add_user

adds user to system

Params

  • user: username

  • homedir: users home directory

  • returns: result from execute

del_user

removes a user, does attempt to remove home directory

execute

Executes a local command:

my $cmd = ['juju-log', 'a message'];
my $ret = execute($cmd);
print $ret->{stdout};

Params

  • command: command to run

  • returns: hash of { stdout =>, stderr =>, has_error =>, error => }

apt_add_repo

Adds a archive repository or ppa. key is required if adding http source.

source can be in the format of:

ppa:charmers/example
deb https://stub:key@private.example.com/ubuntu trusty main

apt_install

Installs packages via apt-get

apt_install(['nginx']);

apt_upgrade

Upgrades system

apt_upgrade();

apt_update

Update repository sources

apt_update();

service_control

Controls a upstart service

service_status

Get running status of service

load_helper

Helper for bringing in additional utilities. A lot of utilities are exported automatically however, this is useful if more control is required over the helpers.

Params

  • opts

    Options to pass into helper class

read_ini

Basic config parsing for ini like files like whats found in most of /etc/default. This will also automatically return its root property.

Params

  • path

    Path of config file to read

AUTHOR

Adam Stokes <adamjs@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Adam Stokes.

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

DISCLAIMER OF WARRANTY

BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.