summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Xaml.Xamlg/Xamlg.cs
diff options
context:
space:
mode:
authorJason Smith <jason.smith@xamarin.com>2016-03-22 13:02:25 -0700
committerJason Smith <jason.smith@xamarin.com>2016-03-22 16:13:41 -0700
commit17fdde66d94155fc62a034fa6658995bef6fd6e5 (patch)
treeb5e5073a2a7b15cdbe826faa5c763e270a505729 /Xamarin.Forms.Xaml.Xamlg/Xamlg.cs
downloadxamarin-forms-17fdde66d94155fc62a034fa6658995bef6fd6e5.tar.gz
xamarin-forms-17fdde66d94155fc62a034fa6658995bef6fd6e5.tar.bz2
xamarin-forms-17fdde66d94155fc62a034fa6658995bef6fd6e5.zip
Initial import
Diffstat (limited to 'Xamarin.Forms.Xaml.Xamlg/Xamlg.cs')
-rw-r--r--Xamarin.Forms.Xaml.Xamlg/Xamlg.cs93
1 files changed, 93 insertions, 0 deletions
diff --git a/Xamarin.Forms.Xaml.Xamlg/Xamlg.cs b/Xamarin.Forms.Xaml.Xamlg/Xamlg.cs
new file mode 100644
index 00000000..d66b6ce7
--- /dev/null
+++ b/Xamarin.Forms.Xaml.Xamlg/Xamlg.cs
@@ -0,0 +1,93 @@
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Original Author for Moonlight:
+// Jackson Harper (jackson@ximian.com)
+//
+// Copyright 2007 Novell, Inc.
+//
+// Author:
+// Stephane Delcroix (stephane@mi8.be)
+//
+// Copyright 2013 Mobile Inception
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Mono.Options;
+using Xamarin.Forms.Build.Tasks;
+
+namespace Xamarin.Forms.Xaml
+{
+ public class Xamlg
+ {
+ static readonly string HelpString = "xamlg.exe - a utility for generating partial classes from XAML.\n" +
+ "xamlg.exe xamlfile[,outputfile]...\n\n" +
+ "If an outputfile is not specified one will be created using the format <xamlfile>.g.cs\n\n";
+
+ public static void Main(string[] args)
+ {
+ bool help = false;
+ var p = new OptionSet
+ {
+ { "h|?|help", "Print this help message", v => help = true }
+ };
+
+ if (help || args.Length < 1)
+ {
+ ShowHelp(p);
+ Environment.Exit(0);
+ }
+ List<string> extra = null;
+ try
+ {
+ extra = p.Parse(args);
+ }
+ catch (OptionException)
+ {
+ Console.WriteLine("Type `xamlg --help' for more information.");
+ return;
+ }
+
+ foreach (var file in extra)
+ {
+ var f = file;
+ var n = "";
+
+ var sub = file.IndexOf(",", StringComparison.InvariantCulture);
+ if (sub > 0)
+ {
+ n = f.Substring(sub + 1);
+ f = f.Substring(0, sub);
+ }
+ else
+ n = string.Concat(Path.GetFileName(f), ".g.", XamlGTask.Provider.FileExtension);
+
+ XamlGTask.GenerateFile(f, n);
+ }
+ }
+
+ static void ShowHelp(OptionSet ops)
+ {
+ Console.WriteLine(HelpString);
+ ops.WriteOptionDescriptions(Console.Out);
+ }
+ }
+} \ No newline at end of file