1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-27 02:16:12 +01:00

Handle "cd prj; osc ci non_existent_pkg" more gracefully

When trying to commit a non-existent package via Project.commit it
is treated as an external package (because a non-existent package
has no "state" inside the project). That is, Project.commitExtPackage
is called, which fails with a FileNotFoundError in case of a
non-existent package (and the traceback is printed to the user).
In order to fix this, treat a non-existent package as broken package.
That is, simply print an info message and do not error out with a
traceback (note: the commit is _not_ aborted).

Fixes: #920 ("osc commit should fail gracefully in case of
nonexistent  filename")
This commit is contained in:
Marcus Huewe 2021-06-04 13:06:00 +02:00
parent c94ea04eb7
commit fb44630ad7

View File

@ -1032,7 +1032,7 @@ class Project:
p.commit(msg, verbose=verbose, skip_local_service_run=skip_local_service_run, can_branch=can_branch, force=force)
elif pac in self.pacs_unvers and not is_package_dir(os.path.join(self.dir, pac)):
print('osc: \'%s\' is not under version control' % pac)
elif pac in self.pacs_broken:
elif pac in self.pacs_broken or not os.path.exists(os.path.join(self.dir, pac)):
print('osc: \'%s\' package not found' % pac)
elif state == None:
self.commitExtPackage(pac, msg, todo, verbose=verbose, skip_local_service_run=skip_local_service_run)