about summary refs log tree commit diff stats
path: root/pkgs/by-name/vi/vimExtraPlugins/update.sh
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-24 14:06:50 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-24 14:06:50 +0200
commitf07dd1dde090c231aa3cb4539d0c8695b93ee653 (patch)
treef7908fca18b0ee72d224507ea45d9c454653c274 /pkgs/by-name/vi/vimExtraPlugins/update.sh
parentfeat(pkgs): Pull yambar-{cpu,memory} in tree (diff)
downloadnixos-config-f07dd1dde090c231aa3cb4539d0c8695b93ee653.zip
refactor(pkgs/by-name/vi/vim-plugins): Give nixpkgs compatible name
Nixpkgs already provides `vimPlugins` so having a `vim-plugins` set is
rather confusing. Calling it `vimExtraPlugins` resolves this confusion.
Diffstat (limited to 'pkgs/by-name/vi/vimExtraPlugins/update.sh')
-rwxr-xr-xpkgs/by-name/vi/vimExtraPlugins/update.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/by-name/vi/vimExtraPlugins/update.sh b/pkgs/by-name/vi/vimExtraPlugins/update.sh
new file mode 100755
index 00000000..6a0d3452
--- /dev/null
+++ b/pkgs/by-name/vi/vimExtraPlugins/update.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env sh
+
+BASE_DIR="$(readlink -f "$(dirname "$0")/plugins")"
+
+# Fetch plugins
+cd "$BASE_DIR" || (echo "BUG: No '$BASE_DIR'" && exit 1)
+
+# Cleanup manifest
+sort -o "$BASE_DIR/manifest.txt" "$BASE_DIR/manifest.txt"
+sort -o "$BASE_DIR/blacklist.txt" "$BASE_DIR/blacklist.txt"
+## Remove all plugins, which are on the blacklist
+# The same file is read and written to
+# shellcheck disable=SC2005
+echo "$(comm -23 "$BASE_DIR/manifest.txt" "$BASE_DIR/blacklist.txt")" >"$BASE_DIR/manifest.txt"
+
+# Backup vim-plugins.nix
+mv "$BASE_DIR/default.nix" "$BASE_DIR/default.nix.bak"
+echo "{...} : {}" >"$BASE_DIR/default.nix"
+
+# Generate derivations for new plugins (this binary is provided by the dev-environment)
+update-vim-plugins cleanup "$BASE_DIR"
+
+# Restore vim-plugins.nix
+mv "$BASE_DIR/default.nix.bak" "$BASE_DIR/default.nix"
+
+# Update new plugins
+update-vim-plugins update "$BASE_DIR" --all