From f369a61d3cc09e81fb70a15064a26f98c0e3c2c0 Mon Sep 17 00:00:00 2001 From: sidey79 <7968127+sidey79@users.noreply.github.com> Date: Sat, 20 Apr 2024 01:39:12 +0200 Subject: [PATCH] fix[get-FHEMRepository]: Do not query archived repos. --- .github/workflows/build.yml | 2 +- scripts/get-FHEMRepositorys.sh | 2 +- scripts/parse-METAJson.pl | 61 +++++++++++++++++++--------------- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 62190b40..36cdd6de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: - name: Remove contrib from dependency scan run: | - rm -r ./src/fhem/trunk/fhem/contrib + rm -r ./src/fhem/trunk/fhem/contrib || true - uses: shogo82148/actions-setup-perl@v1 with: diff --git a/scripts/get-FHEMRepositorys.sh b/scripts/get-FHEMRepositorys.sh index 59dee4e0..9ca3ab3a 100755 --- a/scripts/get-FHEMRepositorys.sh +++ b/scripts/get-FHEMRepositorys.sh @@ -8,7 +8,7 @@ TAG="FHEM" PER_PAGE=2000 # API-Anfrage an GitHub -response=$(curl -s "$BASE_URL?q=$TAG+language:Perl&sort=stars&order=desc&per_page=$PER_PAGE") +response=$(curl -s "$BASE_URL?q=$TAG+language:Perl+archived:false&sort=stars&order=desc&per_page=$PER_PAGE") # Verarbeite die Antwort if [[ $response == *"items"* ]]; then diff --git a/scripts/parse-METAJson.pl b/scripts/parse-METAJson.pl index 7498c738..6328d622 100644 --- a/scripts/parse-METAJson.pl +++ b/scripts/parse-METAJson.pl @@ -8,7 +8,8 @@ use Scalar::Util qw/blessed/; use File::Find::Rule; use JSON; - +use Perl::PrereqScanner::NotQuiteLite::App; + my @directories = @ARGV; #my $filename = @ARGV # path must be provided to our script @@ -84,47 +85,53 @@ sub filter_nested_hashref { } } close($fh); + + my $module_requirements; + if (!@JSONlines) { print "aborting, no META.json found\n"; next; - } - - $jsonString = join '', @JSONlines; - - - ## Script breaks here, because we may have no version field which is requred to pass here - - my $MetaHash; - eval { - $MetaHash = from_json($jsonString) ; - 1; - } or do { - print q[[ failed ]]. $@; - next; - }; + # my $app = Perl::PrereqScanner::NotQuiteLite::App->new( + # parsers => [qw/:installed/], + # suggests => 1, + # # recommends => 1, + # # perl_minimum_version => 1, + exclude_core => 1, + # private_re => $regex, + # ); + # my $scannedprereqs = $app->run($filename); + # $module_requirements = $scannedprereqs->{'prereqs'}; + + } else { + $jsonString = join '', @JSONlines; + ## Script breaks here, because we may have no version field which is requred to pass here + + my $MetaHash; + eval { + $MetaHash = from_json($jsonString) ; + 1; + } or do { + print q[[ failed ]]. $@; + next; + }; + # requirements from the processed file + $module_requirements = filter_nested_hashref($MetaHash->{'prereqs'}, $regex); + } # fix missing version information - my $cpanfile_requirements = $cpanfile->prereq_specs; # requirements from our cpanfile - - - - my $module_requirements = $MetaHash->{'prereqs'}; # requirements from the processed file - $module_requirements = filter_nested_hashref($module_requirements, $regex); - #print Dumper $module_requirements; - - - # print Dumper $cpanfile_requirements; + print Dumper $module_requirements; + print Dumper $cpanfile_requirements; # print Dumper $module_requirements; # merge requirements together my $struct = merge_hashes($cpanfile_requirements, $module_requirements); - #print Dumper $struct; + print Dumper $struct; $cpanfile = Module::CPANfile->from_prereqs( $struct ); # update cpanfile object print qq[$filename was processed successfull\n];