diff --git a/BIN_LOCATIONS.txt b/BIN_LOCATIONS.txt new file mode 100644 index 0000000..e7f0c6f --- /dev/null +++ b/BIN_LOCATIONS.txt @@ -0,0 +1,22 @@ +/store/bin +/store/gnu/bin +/usr/bin +/usr/local/bin +/local/bin +/opt/bin +/opt/local/bin +/sbin +/usr/sbin +/usr/local/sbin +/opt/sbin +/var/qmail/bin +/usr/drwho/local/bin +/usr/local/mlog3/bin +/usr/local/flite/bin +/opt/flite/bin +/opt/csw/bin +/sw/bin +/usr/sfw/bin +/perl/bin +/usr/local/php/bin +/usr/X11R6/bin diff --git a/run.sh b/run.sh index 9f5522c..620e163 100755 --- a/run.sh +++ b/run.sh @@ -73,25 +73,32 @@ fi cat "$OUTPUT_DIR/php-libs.txt" | sort | uniq -c | sort -gr > "$OUTPUT_DIR/php-libs-overview.txt" -find \ - /home/pvv/?/*/web-docs \ - -type f \ - \( \ - -name '*.cgi' \ - -o -name '*.php' \ - -o -name '*.php3' \ - -o -name '*.pm' \ - -o -name '*.pl' \ - -o -name '*.sh' \ - -o -name '*.bash' \ - -o -name '*.phtml' \ - -o -name '*.shtml' \ - -o -name '*.lisp' \ - -o -name '*.cl' \ - \) \ - -exec rg '(?:/store/bin|/store/gnu/bin|/usr/bin|/usr/local/bin|/local/bin|/opt/bin|/opt/local/bin|/sbin|/usr/sbin|/usr/local/sbin|/opt/sbin|/var/qmail/bin|/usr/drwho/local/bin|/usr/local/mlog3/bin|/usr/local/flite/bin|/opt/flite/bin|/opt/csw/bin|/sw/bin|/usr/sfw/bin|/perl/bin|/usr/local/php/bin|/usr/X11R6/bin)/(?:env\s*)?(\w+(?:/\w+)*)' {} -N -o -r '$1' \; \ - 2>/dev/null \ - | tee "$OUTPUT_DIR/cgi-progs.txt" +if [[ ! -f "$OUTPUT_DIR/cgi-progs.txt" ]]; then + readarray -t BIN_LOCATIONS < BIN_LOCATIONS.txt + bin_locations_regex=$(printf '|%s' "${BIN_LOCATIONS[@]}") + bin_locations_regex="${bin_locations_regex:1}" # remove leading '|' + bin_locations_regex="(?:${bin_locations_regex})" + + find \ + /home/pvv/?/*/web-docs \ + -type f \ + \( \ + -name '*.cgi' \ + -o -name '*.php' \ + -o -name '*.php3' \ + -o -name '*.pm' \ + -o -name '*.pl' \ + -o -name '*.sh' \ + -o -name '*.bash' \ + -o -name '*.phtml' \ + -o -name '*.shtml' \ + -o -name '*.lisp' \ + -o -name '*.cl' \ + \) \ + -exec rg "$bin_locations_regex/(?:env\s*)?(\w+(?:/\w+)*)" {} -N -o -r '$1' \; \ + 2>/dev/null \ + | tee "$OUTPUT_DIR/cgi-progs.txt" +fi cat "$OUTPUT_DIR/cgi-progs.txt" | sort | uniq -c | sort -gr > "$OUTPUT_DIR/cgi-progs-overview.txt"