Improve sourcestats.sh
authorXhmikosR <redacted>
Sat, 22 Nov 2025 15:59:54 +0000 (17:59 +0200)
committerXhmikosR <redacted>
Mon, 24 Nov 2025 06:16:14 +0000 (08:16 +0200)
sourcestats.sh

index 6274d1ab27573bb46a622ae07f33c8f0724d1ef0..465d44696008d0e2faf5dc8f8bde4d68f481c68f 100755 (executable)
@@ -1,78 +1,75 @@
 #!/usr/bin/env bash
 
-lists="
-alternates/fakenews
-alternates/fakenews-gambling
-alternates/fakenews-gambling-only
-alternates/fakenews-gambling-porn
-alternates/fakenews-gambling-porn-only
-alternates/fakenews-gambling-porn-social
-alternates/fakenews-gambling-porn-social-only
-alternates/fakenews-gambling-social
-alternates/fakenews-gambling-social-only
-alternates/fakenews-only
-alternates/fakenews-porn
-alternates/fakenews-porn-only
-alternates/fakenews-porn-social
-alternates/fakenews-porn-social-only
-alternates/fakenews-social
-alternates/fakenews-social-only
-alternates/gambling
-alternates/gambling-only
-alternates/gambling-porn
-alternates/gambling-porn-only
-alternates/gambling-porn-social
-alternates/gambling-porn-social-only
-alternates/gambling-social
-alternates/gambling-social-only
-alternates/porn
-alternates/porn-only
-alternates/porn-social
-alternates/porn-social-only
-alternates/social
-alternates/social-only
-data/Badd-Boyz-Hosts
-data/KADhosts
-data/StevenBlack
-data/URLHaus
-data/UncheckyAds
-data/adaway.org
-data/add.2o7Net
-data/add.Dead
-data/add.Risk
-data/add.Spam
-data/hostsVN
-data/minecraft-hosts
-data/mvps.org
-data/someonewhocares.org
-data/tiuxo
-data/yoyo.org
-extensions/fakenews
-extensions/gambling/bigdargon
-extensions/gambling/sinfonietta
-extensions/porn/bigdargon
-extensions/porn/brijrajparmar27
-extensions/porn/clefspeare13
-extensions/porn/sinfonietta
-extensions/porn/sinfonietta-snuff
-extensions/porn/tiuxo
-extensions/social/sinfonietta
-"
+# shellcheck enable=require-variable-braces
 
-IFS='
-'
+set -euo pipefail
 
-for item in $lists; do
-  echo "" > $item/stats.out
+lists=(
+  alternates/fakenews
+  alternates/fakenews-gambling
+  alternates/fakenews-gambling-only
+  alternates/fakenews-gambling-porn
+  alternates/fakenews-gambling-porn-only
+  alternates/fakenews-gambling-porn-social
+  alternates/fakenews-gambling-porn-social-only
+  alternates/fakenews-gambling-social
+  alternates/fakenews-gambling-social-only
+  alternates/fakenews-only
+  alternates/fakenews-porn
+  alternates/fakenews-porn-only
+  alternates/fakenews-porn-social
+  alternates/fakenews-porn-social-only
+  alternates/fakenews-social
+  alternates/fakenews-social-only
+  alternates/gambling
+  alternates/gambling-only
+  alternates/gambling-porn
+  alternates/gambling-porn-only
+  alternates/gambling-porn-social
+  alternates/gambling-porn-social-only
+  alternates/gambling-social
+  alternates/gambling-social-only
+  alternates/porn
+  alternates/porn-only
+  alternates/porn-social
+  alternates/porn-social-only
+  alternates/social
+  alternates/social-only
+  data/Badd-Boyz-Hosts
+  data/KADhosts
+  data/StevenBlack
+  data/URLHaus
+  data/UncheckyAds
+  data/adaway.org
+  data/add.2o7Net
+  data/add.Dead
+  data/add.Risk
+  data/add.Spam
+  data/hostsVN
+  data/minecraft-hosts
+  data/mvps.org
+  data/someonewhocares.org
+  data/tiuxo
+  data/yoyo.org
+  extensions/fakenews
+  extensions/gambling/bigdargon
+  extensions/gambling/sinfonietta
+  extensions/porn/bigdargon
+  extensions/porn/brijrajparmar27
+  extensions/porn/clefspeare13
+  extensions/porn/sinfonietta
+  extensions/porn/sinfonietta-snuff
+  extensions/social/tiuxo
+  extensions/social/sinfonietta
+)
 
-  for HASH_DATE in $(git log --reverse --format="%t,%as" -- $item);  do
-    # echo $item $HASH_DATE
-    IFS=" "
-    split=(${HASH_DATE//,/ })
-    domains=$(rh -q -m <(git show ${split[0]}:$item/hosts))
-    echo  $item ${split[1]} ${domains}
-    echo ${split[1]},${domains} >> ${item}/stats.out
-    IFS='
-'
+for item in "${lists[@]}"; do
+  : > "${item}/stats.out" # truncate file
+
+  git log --reverse --format="%t,%as" -- "${item}" | while IFS=, read -r commit_hash date; do
+    # echo ${item} ${commit_hash} ${date}
+    domains=$(rh -q -m <(git show "${commit_hash}:${item}/hosts"))
+    echo "${item} ${date} ${domains}"
+    echo "${date},${domains}" >> "${item}/stats.out"
   done
 done
git clone https://git.99rst.org/PROJECT