- config($key) This queries the charms config
- resource($key)
-
Pulls the resource bound to $key
- unit($key)
-
Queries the Juju unit for a specific value
unit 'public-address';
This above code would pull the public-address of the unit in the context of the running charm - status($level, $msg)
-
Sets the charm's current status of execution
- plugin($name, %opts)
-
Load a plugin, optionally passing options
NAME
App::CharmKit - ez pz charm authoring
SYNOPSIS
#!/usr/bin/env perl
#
# In hooks/install
BEGIN {
system "apt-get install cpanminus";
system "cpanm -n App::CharmKit";
}
use charm;
pkg ['znc', 'znc-perl', 'znc-tcl', 'znc-python'],
ensure => "present";
my $hook_path = $ENV{JUJU_CHARM_DIR};
file "/etc/systemd/system/znc.service", source => "$hook_path/templates/znc.service";
my $content = template("$hook_path/templates/znc.conf", port => config 'port');
file "/home/ubuntu/.znc/configs", ensure => "directory", owner => "ubuntu", group => "ubuntu";
file "/home/ubuntu/.znc/configs/znc.conf",
owner => "ubuntu",
group => "ubuntu",
content => $content,
on_change => sub { service znc => "restart" };
DESCRIPTION
Sugar package for making Juju charm authoring easier. We import several underlying packages such as Rex and Path::Tiny.
AUTHOR
Adam Stokes <adamjs@cpan.org>