From a6fd069f017aaae5119b21f87298196127e91adc Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Mon, 5 Sep 2022 16:19:32 +0200 Subject: [PATCH] add cloc to pages --- pages/.gitignore | 2 +- pages/cloc/.clocignore | 1 + pages/cloc/.gitignore | 10 ++++ pages/cloc/cloc-def-connect.txt | 5 ++ pages/cloc/cloc-def-flex.txt | 4 ++ pages/cloc/cloc-def-grammar.txt | 5 ++ pages/cloc/cloc-def-jrag-jadd.txt | 5 ++ pages/cloc/cloc-def-parser.txt | 4 ++ pages/cloc/run-cloc.sh | 77 +++++++++++++++++++++++++++++++ 9 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 pages/cloc/.clocignore create mode 100644 pages/cloc/.gitignore create mode 100644 pages/cloc/cloc-def-connect.txt create mode 100644 pages/cloc/cloc-def-flex.txt create mode 100644 pages/cloc/cloc-def-grammar.txt create mode 100644 pages/cloc/cloc-def-jrag-jadd.txt create mode 100644 pages/cloc/cloc-def-parser.txt create mode 100755 pages/cloc/run-cloc.sh diff --git a/pages/.gitignore b/pages/.gitignore index f339871..b731620 100644 --- a/pages/.gitignore +++ b/pages/.gitignore @@ -1,3 +1,3 @@ /docs/ragdoc/ -__pycache__ /docs/cloc.md +__pycache__ diff --git a/pages/cloc/.clocignore b/pages/cloc/.clocignore new file mode 100644 index 0000000..6be9eae --- /dev/null +++ b/pages/cloc/.clocignore @@ -0,0 +1 @@ +run-cloc.sh diff --git a/pages/cloc/.gitignore b/pages/cloc/.gitignore new file mode 100644 index 0000000..2591dbf --- /dev/null +++ b/pages/cloc/.gitignore @@ -0,0 +1,10 @@ +files.csv +my_definitions.txt +ragconnect.base.lang +ragconnect.file +ragconnect.lang +ragconnect.base-*.md +ragconnect.base-*.txt +ragconnect.tests-*.md +ragconnect.tests-*.txt +tmp.json diff --git a/pages/cloc/cloc-def-connect.txt b/pages/cloc/cloc-def-connect.txt new file mode 100644 index 0000000..a20ca00 --- /dev/null +++ b/pages/cloc/cloc-def-connect.txt @@ -0,0 +1,5 @@ +Connect + filter call_regexp_common Java + extension connect + extension ragconnect + 3rd_gen_scale 10 diff --git a/pages/cloc/cloc-def-flex.txt b/pages/cloc/cloc-def-flex.txt new file mode 100644 index 0000000..4ac6dbb --- /dev/null +++ b/pages/cloc/cloc-def-flex.txt @@ -0,0 +1,4 @@ +Flex + filter remove_matches ^\s*// + extension flex + 3rd_gen_scale 1.5 diff --git a/pages/cloc/cloc-def-grammar.txt b/pages/cloc/cloc-def-grammar.txt new file mode 100644 index 0000000..0afc6b8 --- /dev/null +++ b/pages/cloc/cloc-def-grammar.txt @@ -0,0 +1,5 @@ +Grammar + filter call_regexp_common Java + extension ast + extension relast + 3rd_gen_scale 30 diff --git a/pages/cloc/cloc-def-jrag-jadd.txt b/pages/cloc/cloc-def-jrag-jadd.txt new file mode 100644 index 0000000..b5e3435 --- /dev/null +++ b/pages/cloc/cloc-def-jrag-jadd.txt @@ -0,0 +1,5 @@ +Attributes + filter call_regexp_common Java + extension jrag + extension jadd + 3rd_gen_scale 1.5 diff --git a/pages/cloc/cloc-def-parser.txt b/pages/cloc/cloc-def-parser.txt new file mode 100644 index 0000000..c3df675 --- /dev/null +++ b/pages/cloc/cloc-def-parser.txt @@ -0,0 +1,4 @@ +Parser + filter remove_matches ^\s*// + extension parser + 3rd_gen_scale 1.5 diff --git a/pages/cloc/run-cloc.sh b/pages/cloc/run-cloc.sh new file mode 100755 index 0000000..79308c9 --- /dev/null +++ b/pages/cloc/run-cloc.sh @@ -0,0 +1,77 @@ +#!/bin/bash +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "-s -> skip running cloc commands" + echo "-a -> produce files.csv with code count for single src files" + exit +fi +if [ "$1" != "-s" ]; then + # --force-lang=Java,jrag --force-lang=Java,jadd + DEF_FILE=my_definitions.txt + echo "Export language definitions" + cloc --quiet --write-lang-def="$DEF_FILE" + for f in cloc-def-*.txt; + do + cat $f >> "$DEF_FILE" + done + REPO_ROOT="../.." + CLOC_CMD="cloc --exclude-lang=JSON --read-lang-def=my_definitions.txt --exclude-list-file=.clocignore --quiet --hide-rate" + # --ignored=bad-files.txt + cloc_double() { + f=$1 + shift + echo "Creating $f.txt" + $CLOC_CMD --report-file="$f.txt" $@ + echo "Creating $f.md" + $CLOC_CMD --md --report-file=tmp.md $@ + tail -n+3 tmp.md > "$f.md" + rm tmp.md + } + make_page() { + echo "# Evaluation Metrics: Lines of Code" + echo + echo "## Manually written generator code" + echo + cat ragconnect.base-src-result.md + echo + echo "## Generated generator code" + cat ragconnect.base-gen-result.md + echo + echo "## Manually written test code" + cat ragconnect.tests-src-result.md + echo + echo "## Generated test code" + cat ragconnect.tests-gen-result.md + } +fi +if [ "$1" != "-s" ] && [ "$1" != "-a" ]; then + echo "Running cloc with new definitions" + cloc_double "ragconnect.base-src-result" --found=ragconnect.base-src-found.txt ${REPO_ROOT}/ragconnect.base/src/main/ + cloc_double "ragconnect.base-gen-result" --found=ragconnect.base-gen-found.txt ${REPO_ROOT}/ragconnect.base/src/gen/jastadd ${REPO_ROOT}/ragconnect.base/src/gen/java + cloc_double "ragconnect.tests-src-result" --found=ragconnect.tests-src-found.txt ${REPO_ROOT}/ragconnect.tests/src/test/01-input/ ${REPO_ROOT}/ragconnect.tests/src/test/java/ + cloc_double "ragconnect.tests-gen-result" --found=ragconnect.tests-gen-found.txt ${REPO_ROOT}/ragconnect.tests/src/test/02-after-ragconnect/ ${REPO_ROOT}/ragconnect.tests/src/test/java-gen + $CLOC_CMD --sum-reports --report_file=ragconnect ragconnect.base-src-result.txt ragconnect.base-gen-result.txt ragconnect.tests-src-result.txt ragconnect.tests-gen-result.txt + echo "Creating ../docs/cloc.md" + make_page > ../docs/cloc.md +fi +if [ "$1" == "-a" ]; then + echo "filename,code" > files.csv + for f in $(find ${REPO_ROOT}/ragconnect.base/src/main/ ${REPO_ROOT}/ragconnect.base/src/gen/jastadd-sources/ -type f); do + printf '.' + echo $f,$($CLOC_CMD --json $f | jq '.SUM.code') >> files.csv + done + echo + exit +fi + + +# cat ragconnect.base-src-result.txt +# cat ragconnect.base.file +# cat ragconnect.tests-result.txt + +echo "LOC stats:" +echo "Language files blank comment code" +( for t in *-result.txt ; do echo -e "==> $t <=="; grep -v -e '---' -e 'SUM' -e 'Language' -e 'github' $t; done) + +echo +echo "Summary:" +grep -v -e '---' -e 'SUM' -e 'Language' -e 'github' ragconnect.file -- GitLab