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

IO::Iron::Applications - Command line tools for Iron.io services.

VERSION

version 0.12

DESCRIPTION

IO::Iron::Applications is an auxiliary package for IO::Iron. IO::Iron contains the library for using the Iron.io cloud services in Perl programs. IO::Iron::Applications contains command line programs to operate those services.

The Iron.io WWW interface hud.iron.io Dashboard is great but a bit slow to use when you only need to quickly change some values in IronCache, send a message to IronMQ, erase or empty cache for debugging purposes or other similar activities. With these command line utilities the same functions can be performed fast from a normal shell and not using a web browser.

Policies

The programs take use of the IO::Iron package feature policies so wildcard characters can be used in cache names, item keys, etc.

For example, if iron_cache_policies.json:

{
    "definition":{
        "character_group":{
            "[:lim_uchar:]":"ABC",
            "[:low_digit:]":"01"
        }
    },
    "cache":{
        "name":[
            "cache_[:lim_uchar:]{1}0[:digit:]{1}"
        ],
        "item_key":[
            "item.02_[:lim_uchar:]{1,2}[:low_digit:]{1}"
        ]
    }
}

then

ironcache list items .* --cache cache_A01 --policies iron_cache_policies.json

would print out:

Cache                         Item                expires
cache_A01                     item.02_A0                               Key not exists.
cache_A01                     item.02_A1                               Key not exists.
cache_A01                     item.02_AA0                              Key not exists.
cache_A01                     item.02_AA1                              Key not exists.
cache_A01                     item.02_AB0                              Key not exists.
cache_A01                     item.02_AB1                              Key not exists.
cache_A01                     item.02_AC0                              Key not exists.
cache_A01                     item.02_AC1                              Key not exists.
cache_A01                     item.02_B0                               Key not exists.
cache_A01                     item.02_B1                               Key not exists.
cache_A01                     item.02_BA0                              Key not exists.
cache_A01                     item.02_BA1                              Key not exists.
cache_A01                     item.02_BB0                              Key not exists.
cache_A01                     item.02_BB1                              Key not exists.
cache_A01                     item.02_BC0                              Key not exists.
cache_A01                     item.02_BC1                              Key not exists.
cache_A01                     item.02_C0                               Key not exists.
cache_A01                     item.02_C1                               Key not exists.
cache_A01                     item.02_CA0                              Key not exists.
cache_A01                     item.02_CA1                              Key not exists.
cache_A01                     item.02_CB0                              Key not exists.
cache_A01                     item.02_CB1                              Key not exists.
cache_A01                     item.02_CC0                              Key not exists.
cache_A01                     item.02_CC1                              Key not exists.

On the command line, all normal regular expression are allowed. E.g.

item.02_A.{1}0

would return

Cache                         Item                expires
cache_A01                     item.02_AA0                              Key not exists.
cache_A01                     item.02_AB0                              Key not exists.
cache_A01                     item.02_AC0                              Key not exists.

N.B. When defining the policies only a subset of regular expressions is available. Please see policies for instructions.

Following command line programs are available:

ironcache

clear: Clear a cache/caches.
E.g. ironcache clear cache_main
delete: Delete item/items from cache/caches.
E.g. ironcache delete item item_01,item_02 --cache cache_name
E.g. ironcache delete cache cache_name
get: Get item/items from cache/caches.
E.g. ironcache get item item.02_A.{2} --cache cache_A01 --config iron_cache.json --policies iron_cache_policies_test_01.json --warn
increment: Increment an item/items in cache/caches.
E.g. ironcache increment item item.02_AC1,item.02_BC1 --cache cache_A01 --value 225
list: List caches or items in a cache/caches.
E.g. ironcache list items .* --cache cache_A01
E.g. ironcache list caches
put: Put or replace item/items to a cache/caches.
E.g. ironcache put item item.02_CC1,item.02_CC2 --cache cache_A01 --value 123
show: Show the properties of a cache/caches.
E.g. ironcache show cache cache_A01

ironmq

TBA

ironworker

TBA, perhaps.

REQUIREMENTS

These programs are implemented using IO::Iron libraries. Command line interface uses App::Cmd framework.

AUTHOR

Mikko Koivunalho <mikko.koivunalho AT iki.fi>

BUGS

Please report any bugs or feature requests to bug-io-iron-applications@rt.cpan.org or through the web interface at: http://rt.cpan.org/Public/Dist/Display.html?Name=IO-Iron-Applications

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Mikko Koivunalho.

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

The full text of the license can be found in the LICENSE file included with this distribution.