about summary refs log tree commit diff stats
path: root/pkgs/sources/update_vim_plugins/check-duplicates.sh
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:10:21 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:14:26 +0200
commit368cb6b0d25db2ae23be42ad51584de059997e51 (patch)
tree3282e45d3ebced63c8498a47e83a255c35de620b /pkgs/sources/update_vim_plugins/check-duplicates.sh
parentrefactor(hm): Rename to `modules/home` (diff)
downloadnixos-config-368cb6b0d25db2ae23be42ad51584de059997e51.tar.gz
nixos-config-368cb6b0d25db2ae23be42ad51584de059997e51.zip
refactor(sys): Modularize and move to `modules/system` or `pkgs`
Diffstat (limited to 'pkgs/sources/update_vim_plugins/check-duplicates.sh')
-rwxr-xr-xpkgs/sources/update_vim_plugins/check-duplicates.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/sources/update_vim_plugins/check-duplicates.sh b/pkgs/sources/update_vim_plugins/check-duplicates.sh
new file mode 100755
index 00000000..781b8aeb
--- /dev/null
+++ b/pkgs/sources/update_vim_plugins/check-duplicates.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+plugins="$(grep -E "^  [a-zA-Z-]+ =" ./pkgs/vim-plugins.nix | sed -E 's/^  ([a-zA-Z-]+) =.*$/\1/' | sort)"
+count=$(echo "$plugins" | uniq -d | wc -l)
+
+echo "duplicates count: $count"
+
+if [ "$count" -gt 0 ]; then
+    filtered_plugins=$(echo "$plugins" | uniq -d)
+
+    if [ "$1" == "check-only" ]; then
+        echo "$filtered_plugins"
+        exit 1
+    else
+        known_issues=$(gh issue list --state "open" --label "bot" --json "body" | jq -r ".[].body")
+
+        echo "known_issues: $known_issues"
+
+        # iterate over plugins we found missing and
+        # compare them to all open issues.
+        # We no matching issue was found, we create a new one
+        for f in $filtered_plugins; do # do not add " " here. It would break the plugin
+            found=false
+
+            for k in $known_issues; do
+                if [[ $f == "$k" ]]; then
+                    found=true
+                    break
+                fi
+            done
+
+            # test if matching issue was found
+            if ! $found; then
+                echo "Did not find an issue for $f. Creating a new one ..."
+                gh issue create --title "Detected broken plugin: $f" --label "bot" --body "$f"
+            else
+                echo "Issue for $f already exists"
+            fi
+        done
+    fi
+else
+    echo "No duplicates found"
+fi