Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions testing/tests/info-submodules
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
21 changes: 10 additions & 11 deletions zeekpkg/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]

Expand Down Expand Up @@ -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)
Comment thread
bbannier marked this conversation as resolved.
except git.GitCommandError as error:
LOG.info(
'getting info on "%s": invalid git repo path: %s',
Expand All @@ -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]
Expand All @@ -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,
Expand Down
Loading