]>
Commit | Line | Data |
---|---|---|
89fdd3ba | 1 | package PMG::CLI::pmgversion; |
ac60ead2 DM |
2 | |
3 | use strict; | |
4 | use warnings; | |
89fdd3ba DM |
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; | |
ac60ead2 DM |
13 | use PMG::pmgcfg; |
14 | use PMG::API2::APT; | |
15 | ||
89fdd3ba DM |
16 | use base qw(PVE::CLIHandler); |
17 | ||
18 | sub setup_environment { | |
19 | PMG::RESTEnvironment->setup_default_cli_env(); | |
ac60ead2 DM |
20 | } |
21 | ||
89fdd3ba DM |
22 | my $print_status = sub { |
23 | my ($pkginfo) = @_; | |
ac60ead2 | 24 | |
89fdd3ba | 25 | my $pkg = $pkginfo->{Package}; |
ac60ead2 | 26 | |
ac60ead2 DM |
27 | my $version = "not correctly installed"; |
28 | if ($pkginfo->{OldVersion} && $pkginfo->{CurrentState} eq 'Installed') { | |
29 | $version = $pkginfo->{OldVersion}; | |
30 | } | |
31 | ||
8730dfca DM |
32 | if ($pkginfo->{RunningKernel} && $pkginfo->{ManagerVersion}) { |
33 | print "$pkg: $version (API: $pkginfo->{ManagerVersion}, running kernel: $pkginfo->{RunningKernel})\n"; | |
ac60ead2 DM |
34 | } else { |
35 | print "$pkg: $version\n"; | |
36 | } | |
89fdd3ba DM |
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; |