diff --git a/testing/tests/info-submodules b/testing/tests/info-submodules index ec82de6..54c0774 100644 --- a/testing/tests/info-submodules +++ b/testing/tests/info-submodules @@ -9,10 +9,11 @@ cp zkg.meta clonetest/zkg.meta pushd clonetest -git add zkg.meta && gitcommit -v -m "Update zkg.meta" +git add zkg.meta && git commit -v -m "Update zkg.meta" git submodule add "../$(basename $(realpath .))" -sed 's~url.*$~url = http://github.com/zeek/A-REPO-WHICH-SHOULD-NOT-EXIST~' .gitmodules > modules && mv modules .gitmodules +# Use a full URI so we go through the same Git machinery as a remote repo. +sed 's~url.*$~url = file:///dev/null/A-REPO-WHICH-SHOULD-NOT-EXIST~' .gitmodules > modules && mv modules .gitmodules git add .gitmodules && git commit -v -m 'Add submodule' # @TEST-START-FILE zkg.meta diff --git a/zeekpkg/manager.py b/zeekpkg/manager.py index 1601a13..a11cd8c 100644 --- a/zeekpkg/manager.py +++ b/zeekpkg/manager.py @@ -1140,11 +1140,8 @@ def _refresh_source( agg_adds = [] agg_mods = [] - agg_dels = [] for index_file in source.package_index_files(): - urls = [] - with open(index_file) as f: urls = [line.rstrip("\n") for line in f] @@ -1897,22 +1894,24 @@ def info( ipkg = self.find_installed_package(pkg_path) - status: PackageStatus | None = None if prefer_installed and ipkg: - status = ipkg.status pkg_name = ipkg.package.name clonepath = os.path.join(self.package_clonedir, pkg_name) clone = git.Repo(clonepath) - return _info_from_clone(clone, ipkg.package, status, status.current_version) + return _info_from_clone( + clone, + ipkg.package, + ipkg.status, + ipkg.status.current_version, + ) - status = None matches = self.match_source_packages(pkg_path) if not matches: package = Package(git_url=pkg_path) try: - return self._info(package, status, version, update_submodules) + return self._info(package, None, version, update_submodules) except git.GitCommandError as error: LOG.info( 'getting info on "%s": invalid git repo path: %s', @@ -1926,7 +1925,7 @@ def info( " not a usable git URL (invalid or inaccessible," " use -vvv for details)" ) - return PackageInfo(package=package, invalid_reason=reason, status=status) + return PackageInfo(package=package, invalid_reason=reason, status=None) if len(matches) > 1: matches_string = [match.qualified_name() for match in matches] @@ -1945,11 +1944,11 @@ def info( package = matches[0] try: - return self._info(package, status, version, update_submodules) + return self._info(package, None, version, update_submodules) except git.GitCommandError as error: LOG.info('getting info on "%s": invalid git repo path: %s', pkg_path, error) reason = "git repository is either invalid or unreachable" - return PackageInfo(package=package, invalid_reason=reason, status=status) + return PackageInfo(package=package, invalid_reason=reason, status=None) def _info( self,