diff --git a/run.sh b/run.sh index 8efc9da..9f5522c 100755 --- a/run.sh +++ b/run.sh @@ -38,9 +38,23 @@ if [[ ! -f out/perl-libs.txt ]]; then | tee "$OUTPUT_DIR/perl-libs.txt" fi -cat "$OUTPUT_DIR/perl-libs.txt" | sort > "$OUTPUT_DIR/perl-libs-sorted.txt" -comm -2 -3 "$OUTPUT_DIR/perl-libs-sorted.txt" PERL_STANDARD_MODULES.txt > "$OUTPUT_DIR/perl-libs-filtered.txt" -# TODO: remove pragmas +cat "$OUTPUT_DIR/perl-libs.txt" | sort > "$OUTPUT_DIR/perl-libs-tmp1.txt" + +# Remove import specifiers +sed -E \ + -e 's|\s*(qw)?\s*\(.*\)||g' \ + -e 's|\s*(qw)?\s*\/.*\/||g' \ + "$OUTPUT_DIR/perl-libs-tmp1.txt" | sort > "$OUTPUT_DIR/perl-libs-tmp2.txt" + +# Remove standard Perl modules +comm -2 -3 "$OUTPUT_DIR/perl-libs-tmp2.txt" <(cat PERL_STANDARD_MODULES.txt | sort) > "$OUTPUT_DIR/perl-libs-tmp3.txt" + +# Remove pragmas +readarray -t PERL_PRAGMAS < PERL_PRAGMAS.txt +remove_pragmas_regex=$(printf '|^%s' "${PERL_PRAGMAS[@]}") +remove_pragmas_regex="${remove_pragmas_regex:1}" # remove leading '| +sed -E "/${remove_pragmas_regex}/d" "$OUTPUT_DIR/perl-libs-tmp3.txt" > "$OUTPUT_DIR/perl-libs-filtered.txt" + cat "$OUTPUT_DIR/perl-libs-filtered.txt" | uniq -c | sort -gr > "$OUTPUT_DIR/perl-libs-overview.txt" if [[ ! -f "$OUTPUT_DIR/php-libs.txt" ]]; then