use warnings FATAL => qw(all);
use Exporter qw(import);
+use File::Path qw(mkpath);
use File::Spec::Functions qw(rel2abs);
-our @EXPORT = qw(get_cpu_count
+our @EXPORT = qw(create_directory
+ get_cpu_count
get_version
module_installed);
+sub create_directory($$) {
+ my ($location, $permissions) = @_;
+ return eval {
+ mkpath($location, 0, $permissions);
+ return 1;
+ } // 0;
+}
+
sub get_version {
state %version;
return %version if %version;
sub get_cpu_count {
my $count = 1;
if ($^O =~ /bsd/) {
- $count = `sysctl -n hw.ncpu`;
+ $count = `sysctl -n hw.ncpu 2>/dev/null` || 1;
} elsif ($^O eq 'darwin') {
- $count = `sysctl -n hw.activecpu`;
+ $count = `sysctl -n hw.activecpu 2>/dev/null` || 1;
} elsif ($^O eq 'linux') {
- $count = `getconf _NPROCESSORS_ONLN`;
+ $count = `getconf _NPROCESSORS_ONLN 2>/dev/null` || 1;
} elsif ($^O eq 'solaris') {
- $count = `psrinfo -p`;
+ $count = `psrinfo -p 2>/dev/null` || 1;
}
chomp($count);
return $count;