Author: dmacvicar
Date: Tue Jun 19 22:51:04 2007
New Revision: 5800
URL: http://svn.opensuse.org/viewcvs/zypp?rev=5800&view=rev
Log:
- handle errors on source adding
Modified:
trunk/zypper/src/zypper-sources.cc
Modified: trunk/zypper/src/zypper-sources.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-sources.cc?rev=5800&r1=5799&r2=5800&view=diff
==============================================================================
--- trunk/zypper/src/zypper-sources.cc (original)
+++ trunk/zypper/src/zypper-sources.cc Tue Jun 19 22:51:04 2007
@@ -12,11 +12,16 @@
#include
#include
+#include
+#include
+#include
using namespace std;
using namespace zypp;
using namespace zypp::repo;
using namespace boost;
+using namespace zypp::media;
+using namespace zypp::parser;
extern ZYpp::Ptr God;
extern RuntimeData gData;
@@ -206,7 +211,34 @@
RepoManager manager;
cout_v << format(_("Adding repository '%s'.")) % repo.alias() << endl;
- manager.addRepository(repo);
+
+ try
+ {
+ manager.addRepository(repo);
+ }
+ catch (const MediaException & e)
+ {
+ cerr << "Problem transfering repository data for reading." << endl;
+ return ZYPPER_EXIT_ERR_ZYPP;
+ }
+ catch (const ParseException & e)
+ {
+ cerr << "Problem while reading repository data." << endl;
+ return ZYPPER_EXIT_ERR_ZYPP;
+ }
+ catch (const RepoAlreadyExistsException & e)
+ {
+ string message = _(
+ "A repository named '%s'."
+ " already exists.");
+ cerr << format(message) % repo.alias() << endl;
+ return ZYPPER_EXIT_ERR_ZYPP;
+ }
+ catch (const Exception & e)
+ {
+ cerr << e.msg() << endl;
+ return ZYPPER_EXIT_ERR_BUG;
+ }
cout << format(_("Repository '%s' successfully added:")) % repo.alias() << endl;
cout << ( repo.enabled() ? "[x]" : "[ ]" );
@@ -247,7 +279,7 @@
<< endl;
}
}
- catch (Exception & e)
+ catch (RepoUnknownTypeException & e)
{
string message = _(
"Warning: Unknown repository type '%s'."
@@ -264,7 +296,7 @@
repo.addBaseUrl(url);
repo.setEnabled(enabled);
repo.setAutorefresh(refresh);
-
+
return add_repo(repo);
}
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org