public static int Main(string[] args) { try { ProcessArgs(args); // Force-allow TLS 1.2 for HTTPS URLs, because GitHub requires it. // This is on by default in .NET 4.6, but not in 4.5. ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; // If we see the --version flag, then display our build info // and exit. if (Options.Version) { Console.WriteLine(Meta.GetVersion(VersionFormat.Full)); return(ExitOk); } if (!string.IsNullOrEmpty(Options.ValidateCkan)) { var ckan = new Metadata(JObject.Parse(File.ReadAllText(Options.ValidateCkan))); var inf = new Inflator( Options.CacheDir, Options.OverwriteCache, Options.GitHubToken, Options.PreRelease ); inf.ValidateCkan(ckan); Console.WriteLine(QueueHandler.serializeCkan( new PropertySortTransformer().Transform(ckan, null).First() )); return(ExitOk); } if (!string.IsNullOrEmpty(Options.Queues)) { var queues = Options.Queues.Split(new char[] { ',' }, 2); var qh = new QueueHandler( queues[0], queues[1], Options.CacheDir, Options.OverwriteCache, Options.GitHubToken, Options.PreRelease ); qh.Process(); return(ExitOk); } if (Options.File != null) { Log.InfoFormat("Transforming {0}", Options.File); var netkan = ReadNetkan(); Log.Info("Finished reading input"); var inf = new Inflator( Options.CacheDir, Options.OverwriteCache, Options.GitHubToken, Options.PreRelease ); var ckans = inf.Inflate(Options.File, netkan, ParseReleases(Options.Releases)); foreach (Metadata ckan in ckans) { WriteCkan(ckan); } } else { Log.Fatal( "Usage: netkan [--verbose|--debug] [--debugger] [--prerelease] [--outputdir=...] <filename>" ); return(ExitBadOpt); } } catch (Exception e) { e = e.GetBaseException() ?? e; Log.Fatal(e.Message); if (Options == null || Options.Debug) { Log.Fatal(e.StackTrace); } return(ExitError); } return(ExitOk); }