App-VirtualBoxUtils
view release on metacpan or search on metacpan
lib/App/VirtualBoxUtils.pm view on Meta::CPAN
package App::VirtualBoxUtils;
use 5.010001;
use strict 'subs', 'vars';
use warnings;
use Log::ger;
use Hash::Subset qw(hash_subset);
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2024-11-15'; # DATE
our $DIST = 'App-VirtualBoxUtils'; # DIST
our $VERSION = '0.001'; # VERSION
our %SPEC;
$SPEC{':package'} = {
v => 1.1,
summary => 'Utilities related to VirtualBox',
};
our $default_filter = sub {
my $p = shift;
do { $p->{_note} = "fname looks like VirtualBox"; goto FOUND } if $p->{fname} =~ /\A(VirtualBoxVM|VirtualBox|VBoxSVC)\z/;
goto NOT_FOUND;
FOUND:
log_trace "Found VirtualBox process (PID=%d, cmdline=%s, note=%s)", $p->{pid}, $p->{cmndline}, $p->{_note};
return 1;
NOT_FOUND:
0;
};
our $sch_cmd = ['any*', of=>[ ['array*',of=>'str*',min_len=>1], ['str*'] ]];
#our %argopt_cmd = (
# cmd => {
# schema => $sch_cmd,
# default => 'virtualbox',
# },
#);
our %argsopt_start = (
start => {
schema => 'bool*',
},
);
our %argsopt_restart = (
restart => {
schema => 'bool*',
},
);
our %argopt_users = (
users => {
'x.name.is_plural' => 1,
'x.name.singular' => 'user',
summary => 'Kill VirtualBox processes that belong to certain user(s) only',
schema => ['array*', of=>'unix::uid::exists*', 'x.perl.coerce_rules' => ['From_str::comma_sep']],
},
);
our %argopt_quiet = (
quiet => {
schema => 'true*',
cmdline_aliases => {q=>{}},
},
);
our %argopt_signal = (
signal => {
schema=>'unix::signal*',
cmdline_aliases => {s=>{}},
},
);
our %argopt_periods = (
periods => {
'x.name.is_plural' => 1,
'x.name.singular' => 'period',
summary => 'Pause and unpause times, in seconds',
schema => ['array*', {
of=>'duration',
min_len=>2,
( run in 0.501 second using v1.01-cache-2.11-cpan-39bf76dae61 )