use command pipe output and exception handling utils
Robert 'phaylon' Sedlacek [Wed, 9 May 2012 22:08:43 +0000 (22:08 +0000)]
lib/System/Introspector/Packages/Apt.pm

index 07e17a8..6b742d5 100644 (file)
@@ -1,19 +1,23 @@
 package System::Introspector::Packages::Apt;
 use Moo;
 
+use System::Introspector::Util qw(
+    handle_from_command
+    transform_exceptions
+);
+
 sub gather {
     my ($self) = @_;
     return {
-        installed => $self->_gather_installed,
+        installed => transform_exceptions {
+            return { packages => $self->_gather_installed };
+        },
     };
 }
 
 sub _open_dpkg_query_pipe {
     my ($self) = @_;
-    my $command = 'dpkg-query --show';
-    open my $pipe, '-|', $command
-        or die "Unable to open pipe to '$command': $!\n";
-    return $pipe;
+    return handle_from_command 'dpkg-query --show';
 }
 
 sub _gather_installed {