mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 11:43:25 +02:00
pakfire: Refactor status seperating UI and logic
- Removed UI code from status function now returning hash with status
properties.
- Removed function coreupdate_available as it is now not used anymore
- Added UI code to pakfire status routine
- Added meaningfull exitcode to status:
- 2: Core update available
- 3: Pak update available
- 4: Reboot required
- Error codes can be added together: 2+3 = 5 means both core update
and pak update is available
Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
This commit is contained in:
committed by
Peter Müller
parent
2b921b796d
commit
074b509724
@@ -914,16 +914,6 @@ sub updates_available {
|
|||||||
return "$updatecount";
|
return "$updatecount";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub coreupdate_available {
|
|
||||||
eval(`grep "core_" $Conf::dbdir/lists/core-list.db`);
|
|
||||||
if ("$core_release" > "$Conf::core_mine") {
|
|
||||||
return "yes ($core_release)";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "no";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub reboot_required {
|
sub reboot_required {
|
||||||
if ( -e "/var/run/need_reboot" ) {
|
if ( -e "/var/run/need_reboot" ) {
|
||||||
return "yes";
|
return "yes";
|
||||||
@@ -934,26 +924,26 @@ sub reboot_required {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub status {
|
sub status {
|
||||||
# General info
|
### This subroutine returns pakfire status information in a hash.
|
||||||
my $return = "Core-Version: $Conf::version\n";
|
# Usage is without arguments
|
||||||
$return .= "Core-Update-Level: $Conf::core_mine\n";
|
|
||||||
$return .= "Last update: " . &General::age("/opt/pakfire/db/core/mine") . " ago\n";
|
|
||||||
$return .= "Last core-list update: " . &General::age("/opt/pakfire/db/lists/core-list.db") . " ago\n";
|
|
||||||
$return .= "Last server-list update: " . &General::age("/opt/pakfire/db/lists/server-list.db") . " ago\n";
|
|
||||||
$return .= "Last packages-list update: " . &General::age("/opt/pakfire/db/lists/packages_list.db") . " ago\n";
|
|
||||||
|
|
||||||
# Get availability of core updates
|
# Add core version info
|
||||||
$return .= "Core-Update available: " . &Pakfire::coreupdate_available() . "\n";
|
my %status = &Pakfire::coredbinfo();
|
||||||
|
|
||||||
# Get availability of package updates
|
# Add last update info
|
||||||
$return .= "Package-Updates available: " . &Pakfire::updates_available() . "\n";
|
$status{'LastUpdate'} = &General::age("/opt/pakfire/db/core/mine");
|
||||||
|
$status{'LastCoreListUpdate'} = &General::age("/opt/pakfire/db/lists/core-list.db");
|
||||||
|
$status{'LastServerListUpdate'} = &General::age("/opt/pakfire/db/lists/server-list.db");
|
||||||
|
$status{'LastPakListUpdate'} = &General::age("/opt/pakfire/db/lists/packages_list.db");
|
||||||
|
|
||||||
# Test if reboot is required
|
# Add number of available package updates
|
||||||
$return .= "Reboot required: " . &Pakfire::reboot_required() . "\n";
|
$status{'CoreUpdateAvailable'} = (defined $status{'AvailableRelease'}) ? "yes" : "no";
|
||||||
|
$status{'PakUpdatesAvailable'} = &Pakfire::updates_available();
|
||||||
|
|
||||||
# Return status text
|
# Add if reboot is required
|
||||||
print "$return";
|
$status{'RebootRequired'} = &Pakfire::reboot_required();
|
||||||
exit 1;
|
|
||||||
|
return %status;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub get_arch() {
|
sub get_arch() {
|
||||||
|
|||||||
@@ -412,7 +412,24 @@
|
|||||||
system("rm -f /etc/fcron.daily/pakfire-upgrade");
|
system("rm -f /etc/fcron.daily/pakfire-upgrade");
|
||||||
}
|
}
|
||||||
} elsif ("$ARGV[0]" eq "status") {
|
} elsif ("$ARGV[0]" eq "status") {
|
||||||
&Pakfire::status;
|
my $exitcode = 0;
|
||||||
|
my %status = &Pakfire::status;
|
||||||
|
|
||||||
|
print "Core-Version: $status{'CoreVersion'}\n";
|
||||||
|
print "Core-Update-Level: $status{'Release'}\n";
|
||||||
|
print "Last update: $status{'LastUpdate'} ago\n";
|
||||||
|
print "Last core-list update: $status{'LastCoreListUpdate'} ago\n";
|
||||||
|
print "Last server-list update: $status{'LastServerListUpdate'} ago\n";
|
||||||
|
print "Last packages-list update: $status{'LastPakListUpdate'} ago\n";
|
||||||
|
print "Core-Update available: $status{'CoreUpdateAvailable'}";
|
||||||
|
print " ($status{'AvailableRelease'})" if ("$status{'CoreUpdateAvailable'}" eq "yes");
|
||||||
|
print "\nPackage-Updates available: $status{'PakUpdatesAvailable'}\n";
|
||||||
|
print "Reboot required: $status{'RebootRequired'}\n";
|
||||||
|
|
||||||
|
$exitcode += 2 if ($status{'CoreUpdateAvailable'} eq "yes");
|
||||||
|
$exitcode += 3 if ($status{'PakUpdatesAvailable'} eq "yes");
|
||||||
|
$exitcode += 4 if ($status{'RebootRequired'} eq "yes");
|
||||||
|
exit $exitcode;
|
||||||
} else {
|
} else {
|
||||||
&Pakfire::usage;
|
&Pakfire::usage;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user