Dont generate xsl.in files
[metaproxy-moved-to-github.git] / src / metaproxy_prog.cpp
index 9151d0b..4ffcb6a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: metaproxy_prog.cpp,v 1.1 2006-03-16 10:40:59 adam Exp $
+/* $Id: metaproxy_prog.cpp,v 1.5 2006-04-29 08:51:54 adam Exp $
    Copyright (c) 2005-2006, Index Data.
 
 %LICENSE%
@@ -25,7 +25,8 @@ int main(int argc, char **argv)
     {
         po::options_description desc("Allowed options");
         desc.add_options()
-            ("help", "produce help message")
+            ("help,h", "produce help message")
+            ("version,V", "show version")
             ("config", po::value< std::vector<std::string> >(), "xml config")
             ;
         
@@ -35,13 +36,16 @@ int main(int argc, char **argv)
         po::variables_map vm;        
         po::store(po::command_line_parser(argc, argv).
                   options(desc).positional(p).run(), vm);
-        po::notify(vm);    
+        po::notify(vm);
         
         if (vm.count("help")) {
             std::cout << desc << "\n";
             return 1;
         }
-        
+        if (vm.count("version")) {
+            std::cout << "Metaproxy " VERSION "\n";
+            return 0;
+        }
         xmlDocPtr doc = 0;
         if (vm.count("config"))
         {
@@ -75,12 +79,24 @@ int main(int argc, char **argv)
                 pack.router(router).move();
             }
             catch (std::runtime_error &e) {
-                std::cout << "std::runtime error: " << e.what() << "\n";
-                exit(1);
+                std::cerr << "std::runtime error: " << e.what() << "\n";
+                std::exit(1);
             }
             xmlFreeDoc(doc);
         }
     }
+    catch (po::unknown_option &e) {
+        std::cerr << e.what() << "; use --help for list of options\n";
+        std::exit(1);
+    }
+    catch (std::logic_error &e) {
+        std::cerr << "std::logic error: " << e.what() << "\n";
+        std::exit(1);
+    }
+    catch (std::runtime_error &e) {
+        std::cerr << "std::runtime error: " << e.what() << "\n";
+        std::exit(1);
+    }
     catch ( ... ) {
         std::cerr << "Unknown Exception" << std::endl;
         std::exit(1);