]> git.proxmox.com Git - pmg-api.git/blob - PMG/CLI/pmgversion.pm
UserConfig: rename verity_entry to verify_entry
[pmg-api.git] / PMG / CLI / pmgversion.pm
1 package PMG::CLI::pmgversion;
2
3 use strict;
4 use warnings;
5 use POSIX qw();
6
7 use PVE::SafeSyslog;
8 use PVE::Tools qw(extract_param);
9 use PVE::INotify;
10 use PVE::CLIHandler;
11
12 use PMG::RESTEnvironment;
13 use PMG::pmgcfg;
14 use PMG::API2::APT;
15
16 use base qw(PVE::CLIHandler);
17
18 sub setup_environment {
19 PMG::RESTEnvironment->setup_default_cli_env();
20 }
21
22 my $print_status = sub {
23 my ($pkginfo) = @_;
24
25 my $pkg = $pkginfo->{Package};
26
27 my $version = "not correctly installed";
28 if ($pkginfo->{OldVersion} && $pkginfo->{CurrentState} eq 'Installed') {
29 $version = $pkginfo->{OldVersion};
30 }
31
32 if ($pkginfo->{RunningKernel} && $pkginfo->{ManagerVersion}) {
33 print "$pkg: $version (API: $pkginfo->{ManagerVersion}, running kernel: $pkginfo->{RunningKernel})\n";
34 } else {
35 print "$pkg: $version\n";
36 }
37 };
38
39 __PACKAGE__->register_method ({
40 name => 'pmgversion',
41 path => 'pmgversion',
42 method => 'GET',
43 description => "Print version information for Proxmox Mail Gateway packages.",
44 parameters => {
45 additionalProperties => 0,
46 properties => {
47 verbose => {
48 type => 'boolean',
49 description => "List version details for important packages.",
50 optional => 1,
51 default => 0,
52 },
53 }
54 },
55 returns => { type => 'null'},
56 code => sub {
57 my ($param) = @_;
58
59 my $pkgarray = PMG::API2::APT->versions({ node => 'localhost'});
60
61 my $ver = PMG::pmgcfg::package() . '/' . PMG::pmgcfg::version_text();
62 my (undef, undef, $kver) = POSIX::uname();
63
64 if (!$param->{verbose}) {
65 print "$ver (running kernel: $kver)\n";
66 return undef;
67 }
68
69 foreach my $pkg (@$pkgarray) {
70 $print_status->($pkg);
71 }
72
73 return undef;
74
75 }});
76
77 our $cmddef = [ __PACKAGE__, 'pmgversion', []];
78
79 1;