2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

42_npmjs: add console support foe get commands

git-svn-id: https://svn.fhem.de/fhem/trunk@18679 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2019-02-21 12:10:44 +00:00
parent a72914d531
commit 918f3fca9b
2 changed files with 121 additions and 66 deletions

View File

@ -1,7 +1,4 @@
###############################################################################
# $Id$ # $Id$
#
# Based on 42_AptToDate.pm by CoolTux
package main; package main;
use strict; use strict;
@ -1264,96 +1261,157 @@ sub CreateErrorList($) {
sub CreateInstalledList($$) { sub CreateInstalledList($$) {
my ( $hash, $getCmd ) = @_; my ( $hash, $getCmd ) = @_;
my @ret;
my $packages; my $packages;
my $html = defined( $hash->{CL} ) && $hash->{CL}{TYPE} eq "FHEMWEB" ? 1 : 0;
$packages = $hash->{".fhem"}{npm}{listedpackages}{dependencies}; $packages = $hash->{".fhem"}{npm}{listedpackages}{dependencies};
my $ret = '<html><table style="min-width: 450px;"><tr><td>'; my $header = "";
$ret .= '<table class="block wide">'; my $footer = "";
$ret .= '<tr class="even">'; if ($html) {
$ret .= "<td><b>Package Name</b></td>"; $header = '<html><table style="min-width: 450px;" class="block wide">';
$ret .= "<td><b>Current Version</b></td>"; $footer = '</table></html>';
$ret .= "<td></td>"; }
$ret .= '</tr>';
my $rowOpen = "";
my $rowOpenEven = "";
my $rowOpenOdd = "";
my $colOpen = "";
my $txtOpen = "";
my $txtClose = "";
my $colClose = "\t\t\t";
my $rowClose = "";
if ($html) {
$rowOpen = '<tr>';
$rowOpenEven = '<tr class="even">';
$rowOpenOdd = '<tr class="odd">';
$colOpen = '<td>';
$txtOpen = "<b>";
$txtClose = "</b>";
$colClose = '</td>';
$rowClose = '</tr>';
}
push @ret,
$rowOpen
. $colOpen
. $txtOpen
. 'Package Name'
. $txtClose
. $colClose
. $colOpen
. $txtOpen
. 'Current Version'
. $txtClose
. $colClose
. $rowClose;
if ( ref($packages) eq "HASH" ) { if ( ref($packages) eq "HASH" ) {
my $linecount = 1; my $linecount = 1;
foreach my $package ( sort keys( %{$packages} ) ) { foreach my $package ( sort keys( %{$packages} ) ) {
next if ( $package eq "undefined" ); next if ( $package eq "undefined" );
if ( $linecount % 2 == 0 ) {
$ret .= '<tr class="even">';
}
else {
$ret .= '<tr class="odd">';
}
$ret .= "<td>$package</td>"; my $l = $linecount % 2 == 0 ? $rowOpenEven : $rowOpenOdd;
if ( defined( $packages->{$package}{version} ) ) { $l .= $colOpen . $package . $colClose;
$ret .= "<td>$packages->{$package}{version}</td>"; $l .= $colOpen
} . (
else { defined( $packages->{$package}{version} )
$ret .= "<td>?</td>"; ? $packages->{$package}{version}
} : '?'
) . $colClose;
$l .= $rowClose;
$ret .= '</tr>'; push @ret, $l;
$linecount++; $linecount++;
} }
} }
$ret .= '</table></td></tr>'; return $header . join( "\n", @ret ) . $footer;
$ret .= '</table></html>';
return $ret;
} }
sub CreateOutdatedList($$) { sub CreateOutdatedList($$) {
my ( $hash, $getCmd ) = @_; my ( $hash, $getCmd ) = @_;
my @ret;
my $packages; my $packages;
my $html = defined( $hash->{CL} ) && $hash->{CL}{TYPE} eq "FHEMWEB" ? 1 : 0;
$packages = $hash->{".fhem"}{npm}{outdatedpackages}; $packages = $hash->{".fhem"}{npm}{outdatedpackages};
my $ret = '<html><table style="min-width: 450px;"><tr><td>'; my $header = "";
$ret .= '<table class="block wide">'; my $footer = "";
$ret .= '<tr class="even">'; if ($html) {
$ret .= "<td><b>Package Name</b></td>"; $header = '<html><table style="min-width: 450px;" class="block wide">';
$ret .= "<td><b>Current Version</b></td>"; $footer = '</table></html>';
$ret .= "<td><b>New Version</b></td>"; }
$ret .= "<td></td>";
$ret .= '</tr>'; my $rowOpen = "";
my $rowOpenEven = "";
my $rowOpenOdd = "";
my $colOpen = "";
my $txtOpen = "";
my $txtClose = "";
my $colClose = "\t\t\t";
my $rowClose = "";
if ($html) {
$rowOpen = '<tr>';
$rowOpenEven = '<tr class="even">';
$rowOpenOdd = '<tr class="odd">';
$colOpen = '<td>';
$txtOpen = "<b>";
$txtClose = "</b>";
$colClose = '</td>';
$rowClose = '</tr>';
}
push @ret,
$rowOpen
. $colOpen
. $txtOpen
. 'Package Name'
. $txtClose
. $colClose
. $colOpen
. $txtOpen
. 'Current Version'
. $txtClose
. $colClose
. $colOpen
. $txtOpen
. 'New Version'
. $txtClose
. $colClose
. $rowClose;
if ( ref($packages) eq "HASH" ) { if ( ref($packages) eq "HASH" ) {
my $linecount = 1; my $linecount = 1;
foreach my $package ( sort keys( %{$packages} ) ) { foreach my $package ( sort keys( %{$packages} ) ) {
if ( $linecount % 2 == 0 ) { next if ( $package eq "undefined" );
$ret .= '<tr class="even">';
}
else {
$ret .= '<tr class="odd">';
}
$ret .= "<td>$package</td>"; my $l = $linecount % 2 == 0 ? $rowOpenEven : $rowOpenOdd;
if ( defined( $packages->{$package}{current} ) ) { $l .= $colOpen . $package . $colClose;
$ret .= "<td>$packages->{$package}{current}</td>"; $l .= $colOpen
} . (
else { defined( $packages->{$package}{current} )
$ret .= "<td>?</td>"; ? $packages->{$package}{current}
} : '?'
if ( defined( $packages->{$package}{latest} ) ) { ) . $colClose;
$ret .= "<td>$packages->{$package}{latest}</td>"; $l .= $colOpen
} . (
else { defined( $packages->{$package}{latest} )
$ret .= "<td>?</td>"; ? $packages->{$package}{latest}
} : '?'
) . $colClose;
$l .= $rowClose;
$ret .= '</tr>'; push @ret, $l;
$linecount++; $linecount++;
} }
} }
$ret .= '</table></td></tr>'; return $header . join( "\n", @ret ) . $footer;
$ret .= '</table></html>';
return $ret;
} }
#### my little helper #### my little helper
@ -1580,7 +1638,7 @@ sub ToDay() {
"node", "node",
"npm" "npm"
], ],
"version": "v0.10.4", "version": "v0.10.5",
"release_status": "stable", "release_status": "stable",
"author": [ "author": [
"Julian Pawlowski <julian.pawlowski@gmail.com>" "Julian Pawlowski <julian.pawlowski@gmail.com>"

View File

@ -1,7 +1,4 @@
###############################################################################
# $Id$ # $Id$
#
# Metadata handling for FHEM modules
# define package # define package
package FHEM::Meta; package FHEM::Meta;
@ -699,10 +696,10 @@ m/(^#\s+(?:\d{1,2}\.\d{1,2}\.(?:\d{2}|\d{4})\s+)?[^v\d]*(v?(?:\d{1,3}\.\d{1,3}(?
$modMeta->{x_lang}{DE}{abstract} = $item_summary_DE $modMeta->{x_lang}{DE}{abstract} = $item_summary_DE
if ( $item_summary_DE && !defined( $modMeta->{x_lang}{DE}{abstract} ) ); if ( $item_summary_DE && !defined( $modMeta->{x_lang}{DE}{abstract} ) );
$modMeta->{description} = "/./docs/commandref.html#" . $modMeta->{x_file}[4] $modMeta->{description} = "./docs/commandref.html#" . $modMeta->{x_file}[4]
unless ( defined( $modMeta->{description} ) ); unless ( defined( $modMeta->{description} ) );
$modMeta->{x_lang}{DE}{description} = $modMeta->{x_lang}{DE}{description} =
"/./docs/commandref_DE.html#" . $modMeta->{x_file}[4] "./docs/commandref_DE.html#" . $modMeta->{x_file}[4]
unless ( defined( $modMeta->{x_lang}{DE}{description} ) ); unless ( defined( $modMeta->{x_lang}{DE}{description} ) );
# Only when this package is reading its own metadata. # Only when this package is reading its own metadata.