The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

App::CharmKit::Sys

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.

spew(STR $path, STR $contents)

writes to a file, defaults to utf8

slurp(STR $path)

reads a file, defaults to utf8

make_dir(STR $dir)

mkdir helper for creating directories

remove_dir(STR $dir)

removes directories

set_owner(STR $user, ARRAYREF $dirs)

sets owner of directories

  set_owner('ubuntu', ['/var/lib/mydb', '/etc/mydb/conf'])
getent(STR $db, STR $key)

accesses user info from nss

Params

* db: nss database to query * key: what to query * returns: result from sh

add_user(STR $user, STR $homedir)

adds user to system

Params

* user: username * homedir: users home directory * returns: result from sh

del_user(STR $user)

removes a user, does attempt to remove home directory

sh(ARRAYREF $command)

Shs a local command:

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

Params

* command: command to run * returns: hash of { stdout =>, stderr =>, has_error =>, error => }

apt_add_repo(STR $repo, STR $key, BOOL $update)

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(ARRAYREF $pkgs)

Installs packages via apt-get

   apt_install(['nginx']);
apt_upgrade

Upgrades system

   apt_upgrade();
apt_update

Update repository sources

   apt_update();
service_control(STR $service_name, STR $action)

Controls a upstart service

service_status(STR $service_name)

Get running status of service

load_helper(STR $name, HASHREF $opts)

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(STR $path)

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

1;