Appli console : parser les options en ligne de commande

by pierre 4. April 2012 03:50

On m'en avait parlé plusieurs fois mais j'avais jamais essayé Mono.Options, pour faire des applis console paramétrables sans être un devin. Mono.Options est disponible dans NuGet  (un petit clic droit dans les références de votre projet console, ou bien directement par un Install-Package Mono.Options).

Comment ça marche ? Voilà par exemple mon outil d'extraction du pfx à partir du fichier de publish settings Azure :

 

using System;
using System.Xml.Linq;
using Mono.Options;

namespace GetPfx
{
    class Program
    {
        static void Main(string[] args)
        {
            bool help=false;
            string publishFile="";
            string outPfxFile = "";

            OptionSet o = new OptionSet()
            .Add("?|h", "help file", v => help = v != null)
            .Add("in=|pub=", "{file} saved from https://windows.azure.com/download/publishprofile.aspx", 
v => publishFile = v) .Add("out=|outpfx=", "{file}name for the resulting pfx", v => outPfxFile = v); o.Parse(args); if (help || publishFile=="" || outPfxFile=="") { Console.WriteLine("Extracts a pfx file from the Azure publish profile"); Console.WriteLine("Options:"); o.WriteOptionDescriptions(Console.Out); Environment.Exit(-1); } var x = XDocument.Load(publishFile); string pfx = x.Element("PublishData") .Element("PublishProfile") .Attribute("ManagementCertificate").Value; System.IO.File.WriteAllBytes(outPfxFile,Convert.FromBase64String(pfx)); } } }

Tags:

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading