package Common::Sys::Directory;

use strict;
use warnings;

use File::Find::Rule;

use base 'Class::Accessor';

use lib '/app/tools/common/lib';
use Common::Session;
use Common::Sys::File;

__PACKAGE__->mk_accessors(qw/path/);

sub new {
    my $class = shift;
    my $self  = {};
    bless $self, $class;
    $self->_init();
    $self;
}

sub _init { }

sub files {
    my $self = shift;
    my $name = shift;
    my $rule = File::Find::Rule->new;

    $rule->file;
    $rule->name($name) if defined $name;

    my $path = defined $self->path ? $self->path : '/';
    [ $rule->in($path) ];

}

sub sysfiles {
    my $self  = shift;
	my $name  = shift;
    my $files = $self->files($name);
    my $sysfiles;
    if ( defined $files and scalar @{$files} ) {
        foreach my $file ( sort @{$files} ) {
            push @{$sysfiles}, Common::Sys::File->new($file);
        }
    }
    $sysfiles;
}

1;

