vimPlugins: also update nvim-treesitter grammars in the update script

This commit is contained in:
figsoda 2022-11-04 13:56:57 -04:00
parent f0adf4fcae
commit c95706ac44
2 changed files with 25 additions and 5 deletions

View File

@ -342,6 +342,7 @@ class Editor:
self.default_out = default_out or root.joinpath("generated.nix")
self.deprecated = deprecated or root.joinpath("deprecated.json")
self.cache_file = cache_file or f"{name}-plugin-cache.json"
self.nixpkgs_repo = None
def get_current_plugins(self) -> List[Plugin]:
"""To fill the cache"""
@ -670,16 +671,15 @@ def update_plugins(editor: Editor, args):
autocommit = not args.no_commit
nixpkgs_repo = None
if autocommit:
nixpkgs_repo = git.Repo(editor.root, search_parent_directories=True)
commit(nixpkgs_repo, f"{editor.attr_path}: update", [args.outfile])
editor.nixpkgs_repo = git.Repo(editor.root, search_parent_directories=True)
commit(editor.nixpkgs_repo, f"{editor.attr_path}: update", [args.outfile])
if redirects:
update()
if autocommit:
commit(
nixpkgs_repo,
editor.nixpkgs_repo,
f"{editor.attr_path}: resolve github repository redirects",
[args.outfile, args.input_file, editor.deprecated],
)
@ -692,7 +692,7 @@ def update_plugins(editor: Editor, args):
plugin, _ = prefetch_plugin(pdesc, )
if autocommit:
commit(
nixpkgs_repo,
editor.nixpkgs_repo,
"{drv_name}: init at {version}".format(
drv_name=editor.get_drv_name(plugin.normalized_name),
version=plugin.version

View File

@ -21,10 +21,13 @@ import inspect
import os
import sys
import logging
import subprocess
import textwrap
from typing import List, Tuple
from pathlib import Path
import git
log = logging.getLogger()
sh = logging.StreamHandler()
@ -76,8 +79,11 @@ def isNeovimPlugin(plug: pluginupdate.Plugin) -> bool:
class VimEditor(pluginupdate.Editor):
nvim_treesitter_updated = False
def generate_nix(self, plugins: List[Tuple[PluginDesc, pluginupdate.Plugin]], outfile: str):
sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower())
nvim_treesitter_rev = pluginupdate.run_nix_expr("(import <localpkgs> { }).vimPlugins.nvim-treesitter.src.rev")
with open(outfile, "w+") as f:
f.write(HEADER)
@ -91,6 +97,8 @@ class VimEditor(pluginupdate.Editor):
for pdesc, plugin in sorted_plugins:
content = self.plugin2nix(pdesc, plugin)
f.write(content)
if plugin.name == "nvim-treesitter" and plugin.commit != nvim_treesitter_rev:
self.nvim_treesitter_updated = True
f.write("\n}\n")
print(f"updated {outfile}")
@ -123,6 +131,18 @@ def main():
args = parser.parse_args()
pluginupdate.update_plugins(editor, args)
if editor.nvim_treesitter_updated:
print("updating nvim-treesitter grammars")
nvim_treesitter_dir = ROOT.joinpath("nvim-treesitter")
subprocess.check_call([nvim_treesitter_dir.joinpath("update.py")])
if editor.nixpkgs_repo:
msg = "vimPlugins.nvim-treesitter: update grammars"
print(f"committing to nixpkgs: {msg}")
index = editor.nixpkgs_repo.index
index.add([str(nvim_treesitter_dir.joinpath("generated.nix"))])
index.commit(msg)
if __name__ == "__main__":
main()