#!/usr/bin/env perl

use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/../lib";
use Data::Dumper;
use OptArgs;

$OptArgs::COLOUR++;
$OptArgs::PRINT_DEFAULT++;
$OptArgs::PRINT_ISA++;

opt help => (
    isa     => 'Bool',
    comment => 'print a help message and exit',
    alias   => 'h',
    ishelp  => 1,
);

opt quiet => (
    isa     => 'Bool',
    alias   => 'q',
    comment => 'output nothing while working',
);

opt hidden => (
    isa     => 'Bool',
    alias   => 'q',
    comment => 'you will never see this comment',
    hidden  => 1,
);

opt bool => (
    isa     => 'Bool',
    comment => 'example of a default-true Boolean option',
    default => 1,
);

opt iopt => (
    isa     => 'Int',
    comment => 'example of a default-true Integer option',
    alias   => 'i',
    default => 8,
);

opt sopt => (
    isa     => 'ArrayRef',
    comment => 'example of an arrayref option',
    alias   => 's',
    default => 'some text',
);

opt xopt => (
    isa      => 'ArrayRef',
    isa_name => 'XY',
    comment  => 'example isa_name',
    alias    => 'x',
    default  => 'some text',
);

arg item => (
    isa      => 'Str',
    required => 1,
    comment  => 'the item to paint',
);

arg colour => (
    isa     => 'Str',
    default => 'blue',
    comment => 'the colour to use',
);

arg message => (
    isa     => 'Str',
    comment => 'the message to paint on the item',
    default => 'a boring message',
    greedy  => 1,
);

print Dumper(optargs);