App-BitBucketCli

 view release on metacpan or  search on metacpan

lib/App/BitBucketCli/Command/Projects.pm  view on Meta::CPAN

package App::BitBucketCli::Command::Projects;

# Created on: 2018-06-07 08:23:20
# Create by:  Ivan Wills
# $Id$
# $Revision$, $HeadURL$, $Date$
# $Revision$, $Source$, $Date$

use Moo;
use warnings;
use Carp;
use Data::Dumper qw/Dumper/;
use English qw/ -no_match_vars /;

extends 'App::BitBucketCli';

our $VERSION = 0.009;

sub options {
    return [qw/
        colors|c=s%
        force|f!
        long|l
        project|p=s
        regexp|R
        remote|m=s
        repository|r=s
        sleep|s=i
    /]
}

sub projects {
    my ($self) = @_;

    my @projects = sort {
            lc $a->name cmp lc $b->name;
        }
        $self->core->projects();

    my %len;
    for my $project (@projects) {
        $len{name} = length $project->name if !$len{name} || $len{name} < length $project->name;
        $len{key} = length $project->key if !$len{key} || $len{key} < length $project->key;
    }
    for my $project (@projects) {
        if ( $self->opt->long ) {
            my $desc = $project->description || '';
            if ( $desc ) {
                $desc =~ s/^\s+//xms;

                $desc = join "\n" . ' ' x ( $len{name} + $len{key} + 2 ),
                    split /\r?\n/, $desc;
            }

            printf "%-$len{name}s %-$len{key}s %s\n", $project->name, $project->key, $desc;
        }
        else {
            print $project->name . "\n";
        }
    }
}

1;

__END__

=head1 NAME

App::BitBucketCli::Command::Projects - Show the projects in the BitBucket Server

=head1 VERSION



( run in 0.596 second using v1.01-cache-2.11-cpan-39bf76dae61 )