about summary refs log tree commit diff stats
path: root/sys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh')
-rwxr-xr-xsys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/sys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh b/sys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh
new file mode 100755
index 00000000..dcf8b46f
--- /dev/null
+++ b/sys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh
@@ -0,0 +1,49 @@
+#!/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 not add " " here. It would break the plugin
+        do
+            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