Meta

 view release on metacpan or  search on metacpan

Meta/Utils/File/Remove.pm  view on Meta::CPAN

#!/bin/echo This is a perl module and should not be run

package Meta::Utils::File::Remove;

use strict qw(vars refs subs);
use File::Find qw();
use Meta::Utils::Output qw();
use Error qw(:try);
use Meta::Error::FileNotFound qw();

our($VERSION,@ISA);
$VERSION="0.30";
@ISA=qw();

#sub rm($);
#sub rmdir($);
#sub rmall($);
#sub rmrmdir($);
#sub rmrecursive($);
#sub rmhash($);
#sub rmlist($);
#sub rmmult($);
#sub TEST($);

#__DATA__

sub rm($) {
	my($file)=@_;
	if(!-f $file) {
		throw Meta::Error::FileNotFound($file);
	}
	my($resu)=CORE::unlink($file);
	if($resu!=1) {
		throw Meta::Error::Simple("unable to remove [".$file."]");
	}
}

sub rmdir($) {
	my($directory)=@_;
	if(!-d $directory) {
		throw Meta::Error::FileNotFound($directory);
	}
	my($resu)=CORE::rmdir($directory);
	if(!$resu) {
		throw Meta::Error::Simple("unable to remove directory [".$directory."]");
	}
}

sub rmall($) {
#	my($unkn)=@_;
	my($unkn)=$File::Find::name;
	if(-f $unkn) {
		&rm($unkn);
		return;
	}
	if(-d $unkn) {
		&rmdir($unkn);
		return;
	}
	throw Meta::Error::FileNotFound($unkn);
}

sub rmrmdir($) {
	my($file)=@_;
	&rm($file);
	my($dire)=dirname($file);
	if(dir_empty($dire)) {
		&rmdir($dire);
	}
}

sub rmrecursive($) {
	my($dir)=@_;
	File::Find::find({wanted=>\&rmall,nochdir=>1,bydepth=>1},$dir);
}

sub rmhash($) {
	my($hash)=@_;
	my($resu)=1;
	while(my($key,$val)=each(%$hash)) {
		my($curr_resu)=&rm($key);
		$resu=$resu && $curr_resu;
	}
	return($resu);
}

sub rmlist($) {



( run in 0.442 second using v1.01-cache-2.11-cpan-524268b4103 )