QueryResponses.cs, DumpIndex.cs, IQueryResult.cs, QueryExecutor.cs, QueryResult.cs...
[beagle.git] / ContactViewer / ContactViewer.cs
blob5b0ea69cabcec2b855259a0bf259f1c0c4ca3fca
1 //
2 // ContactViewer.cs
3 //
4 // Copyright (C) 2006 Pierre Östlund
5 //
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
15 // The above copyright notice and this permission notice shall be included in all
16 // copies or substantial portions of the Software.
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 // SOFTWARE.
27 using System;
28 using Mono.Unix;
29 using Beagle.Util;
31 namespace ContactViewer {
33 public enum ContactManager {
34 Thunderbird
37 public class ContactViewer {
39 private static Uri uri = null;
40 private static string contact = null;
42 public static void Main (string[] args)
44 Catalog.Init ("beagle", Beagle.Util.ExternalStringsHack.LocaleDir);
46 SystemInformation.SetProcessName ("beagle-contactviewer");
48 ParseArgs (args);
50 ContactManager contact_manager;
51 try {
52 contact_manager = (ContactManager) Enum.Parse (typeof (ContactManager), contact, true);
53 } catch {
54 Console.WriteLine ("ERROR: '{0}' is not a valid contact manager.", contact);
55 Environment.Exit (3);
56 return;
59 new ContactWindow (contact_manager, uri);
62 private static void PrintUsageAndExit ()
64 Console.WriteLine ("USAGE: beagle-contactviewer --manager <MANAGER> [OPTIONS] <uri>");
66 Environment.Exit (0);
69 private static void ParseArgs (string[] args)
71 if (args.Length < 1)
72 PrintUsageAndExit ();
74 for (int i = 0; i < args.Length; i++) {
75 switch (args [i]) {
76 case "-h":
77 case "--help":
78 PrintUsageAndExit ();
79 break;
80 case "--manager":
81 contact = args [i + 1];
82 i++;
83 break;
84 default:
85 if (args [i].StartsWith ("--")) {
86 Console.WriteLine ("WARN: Invalid option {0}", args [i]);
87 } else {
88 try {
89 uri = new Uri (args [i]);
90 } catch {
91 Console.WriteLine ("ERROR: Invalid URI!");
92 Environment.Exit (1);
95 break;
99 if (contact == null) {
100 Console.WriteLine ("ERROR: Please specify a valid contact manager.");
101 Environment.Exit (2);