quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

test1275.pl (3551B)


      1 #!/usr/bin/env perl
      2 #***************************************************************************
      3 #                                  _   _ ____  _
      4 #  Project                     ___| | | |  _ \| |
      5 #                             / __| | | | |_) | |
      6 #                            | (__| |_| |  _ <| |___
      7 #                             \___|\___/|_| \_\_____|
      8 #
      9 # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
     10 #
     11 # This software is licensed as described in the file COPYING, which
     12 # you should have received as part of this distribution. The terms
     13 # are also available at https://curl.se/docs/copyright.html.
     14 #
     15 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
     16 # copies of the Software, and permit persons to whom the Software is
     17 # furnished to do so, under the terms of the COPYING file.
     18 #
     19 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     20 # KIND, either express or implied.
     21 #
     22 # SPDX-License-Identifier: curl
     23 #
     24 ###########################################################################
     25 
     26 my $root=$ARGV[0] || "..";
     27 
     28 my @m = `git ls-files -- $root`;
     29 
     30 my $errors;
     31 
     32 my %accepted=('curl' => 1,
     33               'libcurl' => 1,
     34               'macOS' => 1,
     35               'wolfSSL' => 1,
     36               'mbedTLS' => 1,
     37               'rustls' => 1,
     38               'c-ares' => 1);
     39 
     40 sub checkfile {
     41     my ($f) = @_;
     42     chomp $f;
     43     if($f !~ /\.md\z/) {
     44         return;
     45     }
     46     open(my $fh, "<", "$f");
     47     my $l;
     48     my $prevl;
     49     my $ignore = 0;
     50     my $metadata = 0;
     51     while(<$fh>) {
     52         my $line = $_;
     53         chomp $line;
     54         $l++;
     55         if(($l == 1) && ($line =~ /^---/)) {
     56             # first line is a meta-data divider, skip to the next one
     57             $metadata = 1;
     58             next;
     59         }
     60         elsif($metadata) {
     61             if($line !~ /^---/) {
     62                 next;
     63             }
     64             $metadata = 0;
     65             next;
     66         }
     67         if($line =~ /^(\`\`\`|\~\~\~)/) {
     68             # start or stop ignore-mode
     69             $ignore ^= 1;
     70         }
     71         if(!$ignore) {
     72             if(($prevl =~ /\.\z/) && ($line =~ /^( *)([a-z][A-Za-z-]*)/)) {
     73                 my ($prefix, $word) = ($1, $2);
     74                 if($word =~ /^[a-z]/ && !$accepted{$word}) {
     75                     my $c = length($prefix);
     76                     print STDERR
     77                         "$f:$l:$c:error: lowercase $word after period\n";
     78                     print STDERR "$line\n";
     79                     print STDERR ' ' x $c;
     80                     print STDERR "^\n";
     81                     $errors++;
     82                 }
     83             }
     84             elsif($line =~ /^(.*)\. +([a-z-]+)/) {
     85                 my ($prefix, $word) = ($1, $2);
     86 
     87                 if(($prefix =~ /\.\.\z/) ||
     88                    ($prefix =~ /[0-9]\z/) ||
     89                    ($prefix =~ /e.g\z/) ||
     90                    ($prefix =~ /i.e\z/) ||
     91                    ($prefix =~ /E.g\z/) ||
     92                    ($prefix =~ /etc\z/) ||
     93                    ($word !~ /^[a-z]/) ||
     94                    $accepted{$word}) {
     95                 }
     96                 else {
     97                     my $c = length($prefix) + 2;
     98                     print STDERR
     99                         "$f:$l:$c:error: lowercase $word after period\n";
    100                     print STDERR "$line\n";
    101                     print STDERR ' ' x $c;
    102                     print STDERR "^\n";
    103                     $errors++;
    104                 }
    105             }
    106         }
    107         $prevl = $line;
    108     }
    109     close($fh);
    110 }
    111 
    112 
    113 for my $f (@m) {
    114     checkfile($f);
    115 }
    116 
    117 if($errors) {
    118     exit 1;
    119 }
    120 print "ok\n";