aboutsummaryrefslogtreecommitdiffstats
path: root/sys/nixpkgs/pkgs/update_vim_plugins/check-duplicates.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-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