Loading maintainers/scripts/pluginupdate-py/pluginupdate.py +12 −13 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ # - pkgs/development/lua-modules/updater/updater.py # format: # $ nix run nixpkgs#black maintainers/scripts/pluginupdate.py # $ nix run nixpkgs#ruff maintainers/scripts/pluginupdate.py # type-check: # $ nix run nixpkgs#python3.pkgs.mypy maintainers/scripts/pluginupdate.py # linted: Loading Loading @@ -195,7 +195,7 @@ class RepoGitHub(Repo): xml = req.read() # Filter out illegal XML characters illegal_xml_regex = re.compile(b"[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F]") illegal_xml_regex = re.compile(b"[\x00-\x08\x0b-\x0c\x0e-\x1f\x7f]") xml = illegal_xml_regex.sub(b"", xml) root = ET.fromstring(xml) Loading Loading @@ -328,12 +328,11 @@ def load_plugins_from_csv( return plugins def run_nix_expr(expr, nixpkgs: str, **args): ''' """ :param expr nix expression to fetch current plugins :param nixpkgs Path towards a nixpkgs checkout ''' """ with CleanEnvironment(nixpkgs) as nix_path: cmd = [ "nix", Loading Loading @@ -624,7 +623,7 @@ def print_download_error(plugin: PluginDesc, ex: Exception): def check_results( results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]] results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]], ) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]: """ """ failures: List[Tuple[PluginDesc, Exception]] = [] Loading Loading @@ -792,9 +791,11 @@ def update_plugins(editor: Editor, args): log.info("Start updating plugins") if args.proc > 1 and args.github_token == None: log.warning("You have enabled parallel updates but haven't set a github token.\n" log.warning( "You have enabled parallel updates but haven't set a github token.\n" "You may be hit with `HTTP Error 429: too many requests` as a consequence." "Either set --proc=1 or --github-token=YOUR_TOKEN. ") "Either set --proc=1 or --github-token=YOUR_TOKEN. " ) fetch_config = FetchConfig(args.proc, args.github_token) update = editor.get_update(args.input_file, args.outfile, fetch_config) Loading @@ -810,11 +811,9 @@ def update_plugins(editor: Editor, args): if autocommit: try: repo = git.Repo(os.getcwd()) updated = datetime.now(tz=UTC).strftime('%Y-%m-%d') updated = datetime.now(tz=UTC).strftime("%Y-%m-%d") print(args.outfile) commit(repo, f"{editor.attr_path}: update on {updated}", [args.outfile] ) commit(repo, f"{editor.attr_path}: update on {updated}", [args.outfile]) except git.InvalidGitRepositoryError as e: print(f"Not in a git repository: {e}", file=sys.stderr) sys.exit(1) Loading pkgs/applications/editors/kakoune/plugins/update.py +34 −18 Original line number Diff line number Diff line Loading @@ -2,17 +2,17 @@ #!nix-shell update-shell.nix -i python3 # format: # $ nix run nixpkgs.python3Packages.black -c black update.py # $ nix run nixpkgs#python3Packages.ruff -- update.py # type-check: # $ nix run nixpkgs.python3Packages.mypy -c mypy update.py # $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: # $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py # $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py import inspect import os import sys from typing import List, Tuple from pathlib import Path from typing import List, Tuple # Import plugin update library from maintainers/scripts/pluginupdate.py ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) # type: ignore Loading @@ -21,28 +21,44 @@ sys.path.insert( ) import pluginupdate GET_PLUGINS = f"""(with import <localpkgs> {{}}; GET_PLUGINS = f"""( with import <localpkgs> {{ }}; let inherit (kakouneUtils.override {{ }}) buildKakounePluginFrom2Nix; generated = callPackage {ROOT}/generated.nix {{ inherit buildKakounePluginFrom2Nix; }}; hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value; getChecksum = name: value: if hasChecksum value then {{ hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath [ "src" "outputHash" ] value; getChecksum = name: value: if hasChecksum value then {{ submodules = value.src.fetchSubmodules or false; sha256 = value.src.outputHash; rev = value.src.rev; }} else null; }} else null; checksums = lib.mapAttrs getChecksum generated; in lib.filterAttrs (n: v: v != null) checksums)""" in lib.filterAttrs (n: v: v != null) checksums )""" HEADER = "# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!" class KakouneEditor(pluginupdate.Editor): def generate_nix(self, plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str): class KakouneEditor(pluginupdate.Editor): def generate_nix( self, plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str, ): sorted_plugins = sorted(plugins, key=lambda v: v[1].name.lower()) with open(outfile, "w+") as f: Loading pkgs/applications/editors/vim/plugins/update.py +26 −22 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ # run with: # $ nix run .\#vimPluginsUpdater # format: # $ nix run nixpkgs#python3Packages.black -- update.py # $ nix run nixpkgs#python3Packages.ruff -- update.py # type-check: # $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: Loading @@ -19,14 +19,13 @@ # import inspect import os import logging import textwrap import json import logging import os import subprocess from typing import List, Tuple import textwrap from pathlib import Path from typing import List, Tuple log = logging.getLogger("vim-updater") Loading @@ -37,12 +36,12 @@ log.addHandler(sh) # Import plugin update library from maintainers/scripts/pluginupdate.py ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) import pluginupdate import importlib from pluginupdate import run_nix_expr, PluginDesc treesitter = importlib.import_module('nvim-treesitter.update') import pluginupdate from pluginupdate import PluginDesc, run_nix_expr treesitter = importlib.import_module("nvim-treesitter.update") HEADER = ( Loading @@ -56,9 +55,7 @@ class VimEditor(pluginupdate.Editor): nvim_treesitter_updated = False def generate_nix( self, plugins: List[Tuple[PluginDesc, pluginupdate.Plugin]], outfile: str self, plugins: List[Tuple[PluginDesc, pluginupdate.Plugin]], outfile: str ): log.info("Generating nix code") sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower()) Loading @@ -66,7 +63,7 @@ class VimEditor(pluginupdate.Editor): nvim_treesitter_rev = pluginupdate.run_nix_expr( "(import <localpkgs> { }).vimPlugins.nvim-treesitter.src.rev", self.nixpkgs, timeout=10 timeout=10, ) GET_PLUGINS_LUA = """ Loading Loading @@ -109,8 +106,9 @@ class VimEditor(pluginupdate.Editor): f.write("\n}\n") print(f"updated {outfile}") def plugin2nix(self, pdesc: PluginDesc, plugin: pluginupdate.Plugin, isNeovim: bool) -> str: def plugin2nix( self, pdesc: PluginDesc, plugin: pluginupdate.Plugin, isNeovim: bool ) -> str: repo = pdesc.repo content = f" {plugin.normalized_name} = " Loading Loading @@ -138,19 +136,25 @@ class VimEditor(pluginupdate.Editor): if self.nvim_treesitter_updated: print("updating nvim-treesitter grammars") cmd = [ "nix", "build", "vimPlugins.nvim-treesitter.src", "-f", self.nixpkgs , "--print-out-paths" "nix", "build", "vimPlugins.nvim-treesitter.src", "-f", self.nixpkgs, "--print-out-paths", ] log.debug("Running command: %s", " ".join(cmd)) nvim_treesitter_dir = subprocess.check_output(cmd, text=True, timeout=90).strip() nvim_treesitter_dir = subprocess.check_output( cmd, text=True, timeout=90 ).strip() generated = treesitter.update_grammars(nvim_treesitter_dir) treesitter_generated_nix_path = os.path.join( NIXPKGS_NVIMTREESITTER_FOLDER, "generated.nix" NIXPKGS_NVIMTREESITTER_FOLDER, "generated.nix" ) open(os.path.join(args.nixpkgs, treesitter_generated_nix_path), "w").write( generated ) open(os.path.join(args.nixpkgs, treesitter_generated_nix_path), "w").write(generated) if self.nixpkgs_repo: index = self.nixpkgs_repo.index Loading pkgs/by-name/lu/luarocks-packages-updater/updater.py +12 −18 Original line number Diff line number Diff line #!/usr/bin/env python # format: # $ nix run nixpkgs#python3Packages.black -- update.py # $ nix run nixpkgs#python3Packages.ruff -- update.py # type-check: # $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: # $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py import csv import inspect import logging import os import tempfile import shutil from dataclasses import dataclass import subprocess import csv import logging import tempfile import textwrap from dataclasses import dataclass from multiprocessing.dummy import Pool import pluginupdate from pluginupdate import update_plugins, FetchConfig from typing import List, Tuple, Optional from pathlib import Path from typing import List, Optional, Tuple import pluginupdate from pluginupdate import FetchConfig, update_plugins log = logging.getLogger() log.addHandler(logging.StreamHandler()) Loading @@ -35,9 +35,7 @@ HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! Regenerate it with: nix run nixpkgs#luarocks-packages-updater You can customize the generated packages in pkgs/development/lua-modules/overrides.nix */ """.format( GENERATED_NIXFILE=GENERATED_NIXFILE ) """.format(GENERATED_NIXFILE=GENERATED_NIXFILE) FOOTER = """ } Loading Loading @@ -71,7 +69,6 @@ class LuaPlugin: # rename Editor to LangUpdate/ EcosystemUpdater class LuaEditor(pluginupdate.Editor): def create_parser(self): parser = super().create_parser() parser.set_defaults(proc=1) Loading Loading @@ -173,10 +170,7 @@ def generate_pkg_nix(plug: LuaPlugin): if plug.rockspec != "": if plug.ref or plug.version: msg = ( "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name ) msg = "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name log.warning(msg) log.debug("Updating from rockspec %s", plug.rockspec) Loading @@ -193,7 +187,7 @@ def generate_pkg_nix(plug: LuaPlugin): if plug.luaversion: cmd.append(f"--lua-version={plug.luaversion}") luaver = plug.luaversion.replace('.', '') luaver = plug.luaversion.replace(".", "") if luaver := os.getenv(f"LUA_{luaver}"): cmd.append(f"--lua-dir={luaver}") Loading Loading
maintainers/scripts/pluginupdate-py/pluginupdate.py +12 −13 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ # - pkgs/development/lua-modules/updater/updater.py # format: # $ nix run nixpkgs#black maintainers/scripts/pluginupdate.py # $ nix run nixpkgs#ruff maintainers/scripts/pluginupdate.py # type-check: # $ nix run nixpkgs#python3.pkgs.mypy maintainers/scripts/pluginupdate.py # linted: Loading Loading @@ -195,7 +195,7 @@ class RepoGitHub(Repo): xml = req.read() # Filter out illegal XML characters illegal_xml_regex = re.compile(b"[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F]") illegal_xml_regex = re.compile(b"[\x00-\x08\x0b-\x0c\x0e-\x1f\x7f]") xml = illegal_xml_regex.sub(b"", xml) root = ET.fromstring(xml) Loading Loading @@ -328,12 +328,11 @@ def load_plugins_from_csv( return plugins def run_nix_expr(expr, nixpkgs: str, **args): ''' """ :param expr nix expression to fetch current plugins :param nixpkgs Path towards a nixpkgs checkout ''' """ with CleanEnvironment(nixpkgs) as nix_path: cmd = [ "nix", Loading Loading @@ -624,7 +623,7 @@ def print_download_error(plugin: PluginDesc, ex: Exception): def check_results( results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]] results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]], ) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]: """ """ failures: List[Tuple[PluginDesc, Exception]] = [] Loading Loading @@ -792,9 +791,11 @@ def update_plugins(editor: Editor, args): log.info("Start updating plugins") if args.proc > 1 and args.github_token == None: log.warning("You have enabled parallel updates but haven't set a github token.\n" log.warning( "You have enabled parallel updates but haven't set a github token.\n" "You may be hit with `HTTP Error 429: too many requests` as a consequence." "Either set --proc=1 or --github-token=YOUR_TOKEN. ") "Either set --proc=1 or --github-token=YOUR_TOKEN. " ) fetch_config = FetchConfig(args.proc, args.github_token) update = editor.get_update(args.input_file, args.outfile, fetch_config) Loading @@ -810,11 +811,9 @@ def update_plugins(editor: Editor, args): if autocommit: try: repo = git.Repo(os.getcwd()) updated = datetime.now(tz=UTC).strftime('%Y-%m-%d') updated = datetime.now(tz=UTC).strftime("%Y-%m-%d") print(args.outfile) commit(repo, f"{editor.attr_path}: update on {updated}", [args.outfile] ) commit(repo, f"{editor.attr_path}: update on {updated}", [args.outfile]) except git.InvalidGitRepositoryError as e: print(f"Not in a git repository: {e}", file=sys.stderr) sys.exit(1) Loading
pkgs/applications/editors/kakoune/plugins/update.py +34 −18 Original line number Diff line number Diff line Loading @@ -2,17 +2,17 @@ #!nix-shell update-shell.nix -i python3 # format: # $ nix run nixpkgs.python3Packages.black -c black update.py # $ nix run nixpkgs#python3Packages.ruff -- update.py # type-check: # $ nix run nixpkgs.python3Packages.mypy -c mypy update.py # $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: # $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py # $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py import inspect import os import sys from typing import List, Tuple from pathlib import Path from typing import List, Tuple # Import plugin update library from maintainers/scripts/pluginupdate.py ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) # type: ignore Loading @@ -21,28 +21,44 @@ sys.path.insert( ) import pluginupdate GET_PLUGINS = f"""(with import <localpkgs> {{}}; GET_PLUGINS = f"""( with import <localpkgs> {{ }}; let inherit (kakouneUtils.override {{ }}) buildKakounePluginFrom2Nix; generated = callPackage {ROOT}/generated.nix {{ inherit buildKakounePluginFrom2Nix; }}; hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value; getChecksum = name: value: if hasChecksum value then {{ hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath [ "src" "outputHash" ] value; getChecksum = name: value: if hasChecksum value then {{ submodules = value.src.fetchSubmodules or false; sha256 = value.src.outputHash; rev = value.src.rev; }} else null; }} else null; checksums = lib.mapAttrs getChecksum generated; in lib.filterAttrs (n: v: v != null) checksums)""" in lib.filterAttrs (n: v: v != null) checksums )""" HEADER = "# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!" class KakouneEditor(pluginupdate.Editor): def generate_nix(self, plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str): class KakouneEditor(pluginupdate.Editor): def generate_nix( self, plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str, ): sorted_plugins = sorted(plugins, key=lambda v: v[1].name.lower()) with open(outfile, "w+") as f: Loading
pkgs/applications/editors/vim/plugins/update.py +26 −22 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ # run with: # $ nix run .\#vimPluginsUpdater # format: # $ nix run nixpkgs#python3Packages.black -- update.py # $ nix run nixpkgs#python3Packages.ruff -- update.py # type-check: # $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: Loading @@ -19,14 +19,13 @@ # import inspect import os import logging import textwrap import json import logging import os import subprocess from typing import List, Tuple import textwrap from pathlib import Path from typing import List, Tuple log = logging.getLogger("vim-updater") Loading @@ -37,12 +36,12 @@ log.addHandler(sh) # Import plugin update library from maintainers/scripts/pluginupdate.py ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) import pluginupdate import importlib from pluginupdate import run_nix_expr, PluginDesc treesitter = importlib.import_module('nvim-treesitter.update') import pluginupdate from pluginupdate import PluginDesc, run_nix_expr treesitter = importlib.import_module("nvim-treesitter.update") HEADER = ( Loading @@ -56,9 +55,7 @@ class VimEditor(pluginupdate.Editor): nvim_treesitter_updated = False def generate_nix( self, plugins: List[Tuple[PluginDesc, pluginupdate.Plugin]], outfile: str self, plugins: List[Tuple[PluginDesc, pluginupdate.Plugin]], outfile: str ): log.info("Generating nix code") sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower()) Loading @@ -66,7 +63,7 @@ class VimEditor(pluginupdate.Editor): nvim_treesitter_rev = pluginupdate.run_nix_expr( "(import <localpkgs> { }).vimPlugins.nvim-treesitter.src.rev", self.nixpkgs, timeout=10 timeout=10, ) GET_PLUGINS_LUA = """ Loading Loading @@ -109,8 +106,9 @@ class VimEditor(pluginupdate.Editor): f.write("\n}\n") print(f"updated {outfile}") def plugin2nix(self, pdesc: PluginDesc, plugin: pluginupdate.Plugin, isNeovim: bool) -> str: def plugin2nix( self, pdesc: PluginDesc, plugin: pluginupdate.Plugin, isNeovim: bool ) -> str: repo = pdesc.repo content = f" {plugin.normalized_name} = " Loading Loading @@ -138,19 +136,25 @@ class VimEditor(pluginupdate.Editor): if self.nvim_treesitter_updated: print("updating nvim-treesitter grammars") cmd = [ "nix", "build", "vimPlugins.nvim-treesitter.src", "-f", self.nixpkgs , "--print-out-paths" "nix", "build", "vimPlugins.nvim-treesitter.src", "-f", self.nixpkgs, "--print-out-paths", ] log.debug("Running command: %s", " ".join(cmd)) nvim_treesitter_dir = subprocess.check_output(cmd, text=True, timeout=90).strip() nvim_treesitter_dir = subprocess.check_output( cmd, text=True, timeout=90 ).strip() generated = treesitter.update_grammars(nvim_treesitter_dir) treesitter_generated_nix_path = os.path.join( NIXPKGS_NVIMTREESITTER_FOLDER, "generated.nix" NIXPKGS_NVIMTREESITTER_FOLDER, "generated.nix" ) open(os.path.join(args.nixpkgs, treesitter_generated_nix_path), "w").write( generated ) open(os.path.join(args.nixpkgs, treesitter_generated_nix_path), "w").write(generated) if self.nixpkgs_repo: index = self.nixpkgs_repo.index Loading
pkgs/by-name/lu/luarocks-packages-updater/updater.py +12 −18 Original line number Diff line number Diff line #!/usr/bin/env python # format: # $ nix run nixpkgs#python3Packages.black -- update.py # $ nix run nixpkgs#python3Packages.ruff -- update.py # type-check: # $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: # $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py import csv import inspect import logging import os import tempfile import shutil from dataclasses import dataclass import subprocess import csv import logging import tempfile import textwrap from dataclasses import dataclass from multiprocessing.dummy import Pool import pluginupdate from pluginupdate import update_plugins, FetchConfig from typing import List, Tuple, Optional from pathlib import Path from typing import List, Optional, Tuple import pluginupdate from pluginupdate import FetchConfig, update_plugins log = logging.getLogger() log.addHandler(logging.StreamHandler()) Loading @@ -35,9 +35,7 @@ HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! Regenerate it with: nix run nixpkgs#luarocks-packages-updater You can customize the generated packages in pkgs/development/lua-modules/overrides.nix */ """.format( GENERATED_NIXFILE=GENERATED_NIXFILE ) """.format(GENERATED_NIXFILE=GENERATED_NIXFILE) FOOTER = """ } Loading Loading @@ -71,7 +69,6 @@ class LuaPlugin: # rename Editor to LangUpdate/ EcosystemUpdater class LuaEditor(pluginupdate.Editor): def create_parser(self): parser = super().create_parser() parser.set_defaults(proc=1) Loading Loading @@ -173,10 +170,7 @@ def generate_pkg_nix(plug: LuaPlugin): if plug.rockspec != "": if plug.ref or plug.version: msg = ( "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name ) msg = "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name log.warning(msg) log.debug("Updating from rockspec %s", plug.rockspec) Loading @@ -193,7 +187,7 @@ def generate_pkg_nix(plug: LuaPlugin): if plug.luaversion: cmd.append(f"--lua-version={plug.luaversion}") luaver = plug.luaversion.replace('.', '') luaver = plug.luaversion.replace(".", "") if luaver := os.getenv(f"LUA_{luaver}"): cmd.append(f"--lua-dir={luaver}") Loading