diff options
Diffstat (limited to '')
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/README.md | 94 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/check.nix | 37 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/default.nix | 15 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix | 251 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json | 6 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt | 1 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix | 55 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt | 3 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md | 7 | ||||
-rw-r--r-- | sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt | 0 | ||||
-rwxr-xr-x | sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins | 26 |
11 files changed, 495 insertions, 0 deletions
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/README.md b/sys/nixpkgs/pkgs/plgs-pkgs/README.md new file mode 100644 index 00000000..ed05f4b2 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/README.md @@ -0,0 +1,94 @@ +# Fork +All files in this repository where forked form [here](https://github.com/NixNeovim/NixNeovimPlugins) on commit `5010b91eb03696574c3c293f072a090618227e87`. +Below the original README. They were licensed under the MIT license. +# All vim plugins, ready to go + +This repo auto generates nix packages for vim/neovim plugins. +Packages are automatically updated twice per week using a GitHub Actions. +Plugins are fetched from the `manifest.txt` and [awesome-neovim][0] repo. + +This is a fork of [this repo](https://github.com/m15a/nixpkgs-vim-extra-plugins); however, we fetch all additions from the original repo, so we will never have less plugins. +Further, the original deletes plugins that are available in the nixpkgs. We, instead, try to assemble a list of all available plugins. +Therefore, to access plugins you will never have to search in two places. + +This repo can be used as a stand-alone, by adding it to your inputs. +However, we recommend to use [NixNeovim](https://github.com/NixNeovim/NixNeovim) modules instead, and use this only when you need a plugins, which does not have a module, yet. + +## Available plugins + +The [plugins.md](plugins.md) contains an auto-generated list of all available plugins. + +## Usage + +- We recommend using [NixNeovim](https://github.com/NixNeovim/NixNeovim), and only access the plugins directly when they do not have a module in NixNeovim. + +However, you can also use this repo without NixNeovim: +To access the plugins, you need to add the overlay. +The overlay adds extra Vim plugins to `pkgs.vimExtraPlugins`. +First, add this repo to your inputs: + +``` +inputs.nixneovimplugins.url = github:jooooscha/nixpkgs-vim-extra-plugins +``` + +Next, apply the provided overlay: + +``` +nixpkgs.overlays = [ + inputs.nixneovimplugins.overlays.default +]; +``` + +Finally, you can add the packages to your vim/neovim config. For example you can use [NixNeovim](https://github.com/NixNeovim/Nixneovim) or you can add the plugins directly: + +``` + programs.neovim = { + plugins = [ + pkgs.vimExtraPlugins.nvim-colorizer-lua + ]; + } +``` + +More info on using neovim with nix can be found here: [NixOS Neovim](https://nixos.wiki/wiki/Neovim) + +[0]: https://github.com/rockerBOO/awesome-neovim +[1]: https://nixos.org/manual/nix/stable/release-notes/rl-2.4.html?highlight=builtins.getFlake#other-features +[2]: https://nur.nix-community.org/ +[3]: https://nur.nix-community.org/repos/m15a/ + + +## Contribution + +### How to add a new plugin + +#### 1. Add the plugin to manifest.txt: + +``` +# Examples + +haringsrob/nvim_context_vt +sourcehut:henriquehbr/ataraxis.lua +gitlab:yorickpeterse/nvim-pqf +williamboman/mason.nvim:45b9a4da776d9fb017960b3ac7241161fb7bc578 +foo/bar::baz --> renamed to baz +foo/bar:dev --> using dev branch +``` + +Supported are Github (default), SourceHut, and GitLab. + +#### 2. Create a Pull Request + +- Create a pull request with the changed manifest.txt (and blacklist.txt if neccessary). +- A GitHub action will check your contribution and generate all neccessary nix code for your new plugin. It will also take care of sorting and cleaning the manifest.txt +- After all checks have passed, I will merge your change. + +I am happy for any contribution. :) + +### How to remove a new plugin + +Copy the entry from manifest.txt to blacklist.txt and create a PR. +The GitHub Actions will do the rest, including removing the entry from manifest.txt + +## Credits + +This is originally based on work by [m15a](https://github.com/m15a/nixpkgs-vim-extra-plugins) diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/check.nix b/sys/nixpkgs/pkgs/plgs-pkgs/check.nix new file mode 100644 index 00000000..ad23e2c7 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/check.nix @@ -0,0 +1,37 @@ +{ + pkgs, + lib, + ... +}: let + # checks if a plugin has a license + hasLicense = _: pkg: let + warn = x: lib.warn x x; + + msg = + if builtins.hasAttr "license" pkg.meta + then "${pkg.name} has license" + else warn "${pkg.name} has no license"; + + msg' = lib.replaceStrings [" "] ["-"] msg; + in + pkgs.runCommandNoCC msg' {} "echo : > $out "; + + # function to check License for all packages + check-missing-licenses = let + buildInputs = + lib.mapAttrsToList + hasLicense + pkgs.vimExtraPlugins; + in + pkgs.runCommandNoCC + "check-missing-licenses" + {inherit buildInputs;} + "echo : > $out"; +in { + checks = + pkgs.vimExtraPlugins + // { + inherit check-missing-licenses; + inherit (pkgs) update-vim-plugins; + }; +} diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/default.nix b/sys/nixpkgs/pkgs/plgs-pkgs/default.nix new file mode 100644 index 00000000..0f7cd485 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/default.nix @@ -0,0 +1,15 @@ +[ + (final: prev: + prev.lib.composeManyExtensions [ + (self: super: let + origin = import ./plugins { + inherit (super.vimUtils) buildVimPlugin; + inherit (super) lib fetchurl fetchgit; + }; + in { + vimExtraPlugins = super.lib.makeExtensible (_: super.lib.recurseIntoAttrs origin); + }) + ] + final + prev) +] diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix b/sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix new file mode 100644 index 00000000..c4a32026 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix @@ -0,0 +1,251 @@ +final: prev: let + inherit (final) lib; + + /* + * Mark broken packages here. + */ + markBrokenPackages = self: super: + lib.mapAttrs (attrName: broken: + super.${attrName}.overrideAttrs (old: { + meta = old.meta // {inherit broken;}; + })) + { + go-nvim = true; + + highlight-current-n-nvim = true; + + snippet-converter-nvim = true; + + vacuumline-nvim = true; + + vgit-nvim = true; + + unruly-worker = true; + }; + + /* + * Add licenses if missing or incorrect in generated ./pkgs/vim-plugins.nix. + */ + fixLicenses = self: super: + lib.mapAttrs (attrName: license: + super.${attrName}.overrideAttrs (old: { + meta = old.meta // {inherit license;}; + })) (with lib.licenses; { + ariake-vim-colors = [mit]; + + bats-vim = [vim]; + + christmas-vim = [mit]; + + coc-tailwind-intellisense = [mit]; + + distant-nvim = [asl20 mit]; + + goimpl-nvim = [mit]; + + null-ls-nvim = [publicDomain]; + + nvim-base16-lua = [mit]; + + nvim-cartographer = [gpl3Plus]; + + nvim-deus = [gpl3Plus]; + + nvim-pqf = [mpl20]; + + nvim-remote-containers = [ + rec { + shortName = fullName; + fullName = "jamestthompson3's modified MIT License"; + url = "https://github.com/jamestthompson3/nvim-remote-containers/blob/master/LICENSE"; + free = true; + redistributable = true; + deprecated = false; + } + ]; + + nvim-revJ-lua = [vim]; + + nvim-srcerite = [gpl3Plus]; + + nvim-window = [mpl20]; + + osc-nvim = [mit]; + + vim-emacscommandline = [vim]; + + vim-hy = [vim]; + + vim-textobj-indent = [mit]; + + vim-textobj-parameter = [mit]; + }); + + # /* + # * Add dependencies to vim plugins if missing or incorrect in generated ./pkgs/vim-plugins.nix. + # */ + # fixDependencies = self: super: + # lib.mapAttrs (attrName: dependencies: super.${attrName}.overrideAttrs (_: { + # inherit dependencies; + # })) (with final.vimPlugins; + # { + # apprentice-nvim = [ lush-nvim ]; + + # auto-pandoc-nvim = [ plenary-nvim ]; + + # code-runner-nvim = [ plenary-nvim ]; + + # codeschool-nvim = [ lush-nvim ]; + + # express-line-nvim = [ plenary-nvim ]; + + # follow-md-links-nvim = [ nvim-treesitter ]; + + # fuzzy-nvim = [ plenary-nvim ]; + + # github-colors = [ nvim-treesitter ]; + + # gloombuddy = [ colorbuddy-nvim ]; + + # go-nvim = [ nvim-treesitter ]; + + # goimpl-nvim = [ nvim-treesitter telescope-nvim ]; + + # gruvbuddy-nvim = [ colorbuddy-nvim ]; + + # gruvy = [ lush-nvim ]; + + # jester = [ nvim-treesitter ]; + + # lspactions = [ plenary-nvim popup-nvim ]; + + # lspactions-nvim06-compatible = [ plenary-nvim popup-nvim self.astronauta-nvim ]; + + # navigator-lua = [ nvim-lspconfig self.guihua-lua ]; + + # neogen = [ nvim-treesitter ]; + + # nlsp-settings-nvim = [ nvim-lspconfig ]; + + # nvim-comment-frame = [ nvim-treesitter ]; + + # nvim-go = [ plenary-nvim popup-nvim ]; + + # nvim-lsp-basics = [ nvim-lspconfig ]; + + # nvim-lspfuzzy = [ fzfWrapper ]; + + # nvim-lsp-installer = [ nvim-lspconfig ]; + + # nvim-lspupdate = [ nvim-lspconfig ]; + + # nvim-magic = [ plenary-nvim nui-nvim ]; + + # nvim-rdark = [ colorbuddy-nvim ]; + + # nvim-revJ-lua = [ self.vim-textobj-parameter ]; + + # nvim-spectre = [ plenary-nvim ]; + + # nvim-treesitter-textsubjects = [ nvim-treesitter ]; + + # nvim-treehopper = [ nvim-treesitter ]; + + # nvim-ts-context-commentstring = [ nvim-treesitter ]; + + # one-small-step-for-vimkind = [ nvim-dap ]; + + # onebuddy = [ colorbuddy-nvim ]; + + # reaper-nvim = [ self.osc-nvim ]; + + # sqls-nvim = [ nvim-lspconfig ]; + + # startup-nvim = [ telescope-nvim ]; + + # tabline-framework-nvim = [ nvim-web-devicons ]; + + # tabout-nvim = [ nvim-treesitter ]; + + # telescope-bibtex-nvim = [ telescope-nvim ]; + + # telescope-command-palette-nvim = [ telescope-nvim ]; + + # telescope-heading-nvim = [ telescope-nvim ]; + + # telescope-tmuxinator-nvim = [ telescope-nvim ]; + + # vacuumline-nvim = [ galaxyline-nvim ]; + + # vgit-nvim = [ plenary-nvim ]; + + # vim-textobj-parameter = [ vim-textobj-user ]; + + # virtual-types-nvim = [ nvim-lspconfig ]; + + # yabs-nvim = [ plenary-nvim ]; + + # zenbones-nvim = [ lush-nvim ]; + # }); + + /* + * Add other overrides here. + */ + otherOverrides = self: super: { + feline-nvim = super.feline-nvim.overrideAttrs (old: { + patches = + (old.patches or []) + ++ lib.optionals (lib.versionOlder old.version "2021-12-19") [ + # https://github.com/famiu/feline.nvim/pull/179 + (final.fetchpatch { + url = "https://github.com/zbirenbaum/feline.nvim/commit/d62d9ec923fe76da27f5ac7000b2a506b035740d.patch"; + sha256 = "sha256-fLa6za0Srm/gnVPlPgs11+2cxhj7hitgUhlHu2jc2+s="; + }) + ]; + }); + + glow-nvim = super.glow-nvim.overrideAttrs (old: { + patches = + (old.patches or []) + ++ [ + # https://github.com/ellisonleao/glow.nvim/pull/80 + (final.fetchpatch { + url = "https://github.com/ellisonleao/glow.nvim/pull/80/commits/16a348ffa8022945f735caf708c2bd601b08272c.patch"; + sha256 = "sha256-fljlBTHcoPjnavF37yoIs3zrZ3+iOX6oQ0e20AKtNI8="; + }) + ]; + }); + + guihua-lua = super.guihua-lua.overrideAttrs (old: { + buildPhase = '' + ( + cd lua/fzy + make + ) + ''; + }); + + mdeval-nvim = super.mdeval-nvim.overrideAttrs (old: { + postPatch = + (old.postPatch or "") + + '' + sed -Ei lua/mdeval.lua \ + -e 's@(get_command\(string\.format\(")mkdir@\1${final.coreutils}/bin/mkdir@' \ + -e 's@(get_command\(string\.format\(")rm@\1${final.coreutils}/bin/rm@' \ + -e 's@(2>&1; )echo@\1${final.coreutils}/bin/echo@' + ''; + }); + + nvim-papadark = self.themer-lua; + + feline-nvim-develop = self.feline-nvim; + }; +in { + vimExtraPlugins = prev.vimExtraPlugins.extend (lib.composeManyExtensions [ + markBrokenPackages + fixLicenses + fixDependencies + # onceHereButNowOfficiallyMaintainedPlugins + otherOverrides + ]); +} diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json new file mode 100644 index 00000000..46df05f9 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json @@ -0,0 +1,6 @@ +{ + "akinsho/toggleterm.nvim": "{\"description\": \"A neovim lua plugin to help easily manage multiple terminal windows\", \"homepage\": \"https://github.com/akinsho/toggleterm.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"gpl3Only\"]}]}, \"name\": \"toggleterm-nvim\", \"owner\": \"akinsho\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"0nx69q9597vy7lzvvh58fnjyin23ns6apmyp532sgf547bw7mld6\", \"url\": \"https://github.com/akinsho/toggleterm.nvim/archive/cbd041d91b90cd3c02df03fe6133208888f8e008.tar.gz\"}, \"source_line\": \"akinsho/toggleterm.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cMBg==\"]], \"py/object\": \"datetime.date\"}}", + "andrewferrier/debugprint.nvim": "{\"description\": \"Debugging in NeoVim the print() way!\", \"homepage\": \"https://github.com/andrewferrier/debugprint.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"\"]}]}, \"name\": \"debugprint-nvim\", \"owner\": \"andrewferrier\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"12xp4ziray4piynjgwbgdbylday20sdfxslq24h0c3ihdy8wf7ij\", \"url\": \"https://github.com/andrewferrier/debugprint.nvim/archive/8a6d66bd6162e9c49804e9286a7d4ceba60355d5.tar.gz\"}, \"source_line\": \"andrewferrier/debugprint.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cLHA==\"]], \"py/object\": \"datetime.date\"}}", + "lmburns/lf.nvim": "{\"description\": \"Lf file manager for Neovim (in Lua)\", \"homepage\": \"https://github.com/lmburns/lf.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"mit\"]}]}, \"name\": \"lf-nvim\", \"owner\": \"lmburns\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"1nwf90bnzqhlgs007gg6xpx0vf4r1d19586nld78ipi1ch7nz4px\", \"url\": \"https://github.com/lmburns/lf.nvim/archive/69ab1efcffee6928bf68ac9bd0c016464d9b2c8b.tar.gz\"}, \"source_line\": \"lmburns/lf.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cKAw==\"]], \"py/object\": \"datetime.date\"}}", + "nvim-telescope/telescope-bibtex.nvim": "{\"description\": \"A telescope.nvim extension to search and paste bibtex entries into your TeX files.\", \"homepage\": \"https://github.com/nvim-telescope/telescope-bibtex.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"mit\"]}]}, \"name\": \"telescope-bibtex-nvim\", \"owner\": \"nvim-telescope\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"1vllzdh9ammsfr76mg3brl540b3i6197v8bbgi0lj7s95qy9mj5y\", \"url\": \"https://github.com/nvim-telescope/telescope-bibtex.nvim/archive/b10ec78df938a1e06217f965b32fb1b960681cff.tar.gz\"}, \"source_line\": \"nvim-telescope/telescope-bibtex.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cLFA==\"]], \"py/object\": \"datetime.date\"}}" +} \ No newline at end of file diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt @@ -0,0 +1 @@ + diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix new file mode 100644 index 00000000..0d798d3e --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix @@ -0,0 +1,55 @@ +{ + lib, + buildVimPlugin, + fetchurl, + fetchgit, +}: { + /* + Generated from: andrewferrier/debugprint.nvim + */ + debugprint-nvim = buildVimPlugin { + pname = "debugprint-nvim"; + version = "2023-11-28"; + src = fetchurl { + url = "https://github.com/andrewferrier/debugprint.nvim/archive/8a6d66bd6162e9c49804e9286a7d4ceba60355d5.tar.gz"; + sha256 = "12xp4ziray4piynjgwbgdbylday20sdfxslq24h0c3ihdy8wf7ij"; + }; + meta = with lib; { + description = "Debugging in NeoVim the print() way!"; + homepage = "https://github.com/andrewferrier/debugprint.nvim"; + license = with licenses; []; + }; + }; + /* + Generated from: lmburns/lf.nvim + */ + lf-nvim = buildVimPlugin { + pname = "lf-nvim"; + version = "2023-10-03"; + src = fetchurl { + url = "https://github.com/lmburns/lf.nvim/archive/69ab1efcffee6928bf68ac9bd0c016464d9b2c8b.tar.gz"; + sha256 = "1nwf90bnzqhlgs007gg6xpx0vf4r1d19586nld78ipi1ch7nz4px"; + }; + meta = with lib; { + description = "Lf file manager for Neovim (in Lua)"; + homepage = "https://github.com/lmburns/lf.nvim"; + license = with licenses; [mit]; + }; + }; + /* + Generated from: nvim-telescope/telescope-bibtex.nvim + */ + telescope-bibtex-nvim = buildVimPlugin { + pname = "telescope-bibtex-nvim"; + version = "2023-11-20"; + src = fetchurl { + url = "https://github.com/nvim-telescope/telescope-bibtex.nvim/archive/b10ec78df938a1e06217f965b32fb1b960681cff.tar.gz"; + sha256 = "1vllzdh9ammsfr76mg3brl540b3i6197v8bbgi0lj7s95qy9mj5y"; + }; + meta = with lib; { + description = "A telescope.nvim extension to search and paste bibtex entries into your TeX files."; + homepage = "https://github.com/nvim-telescope/telescope-bibtex.nvim"; + license = with licenses; [mit]; + }; + }; +} diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt new file mode 100644 index 00000000..86df059f --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt @@ -0,0 +1,3 @@ +andrewferrier/debugprint.nvim +lmburns/lf.nvim +nvim-telescope/telescope-bibtex.nvim diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md new file mode 100644 index 00000000..73653272 --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md @@ -0,0 +1,7 @@ + - Plugin count: 3 + +| Repo | Last Update | Nix package name | Last checked | +|:---|:---|:---|:---| +| [andrewferrier/debugprint.nvim](https://github.com/andrewferrier/debugprint.nvim) | 2023-11-28 | `debugprint-nvim` | 2023-12-09 | +| [lmburns/lf.nvim](https://github.com/lmburns/lf.nvim) | 2023-10-03 | `lf-nvim` | 2023-12-09 | +| [nvim-telescope/telescope-bibtex.nvim](https://github.com/nvim-telescope/telescope-bibtex.nvim) | 2023-11-20 | `telescope-bibtex-nvim` | 2023-12-09 | diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins b/sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins new file mode 100755 index 00000000..ea71c6fa --- /dev/null +++ b/sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins @@ -0,0 +1,26 @@ +#!/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 +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 |