From 3c99f3a9fdb9814de43b212a6a7497ead9e7d501 Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Thu, 14 Sep 2017 16:48:17 -0400 Subject: [PATCH] One shot command line logins --- TGCommandLine/Program.cs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/TGCommandLine/Program.cs b/TGCommandLine/Program.cs index dffe214070..25dbd615bd 100644 --- a/TGCommandLine/Program.cs +++ b/TGCommandLine/Program.cs @@ -10,10 +10,46 @@ namespace TGCommandLine { static ExitCode RunCommandLine(IList argsAsList) { + //first lookup the connection string + bool badConnectionString = false; + for (var I = 0; I < argsAsList.Count - 1; ++I) { + var lowerarg = argsAsList[I].ToLower(); + if (lowerarg == "-c" || lowerarg == "--connect") + { + var connectionString = argsAsList[I + 1]; + var splits = connectionString.Split('@'); + var userpass = splits[0].Split(':'); + if (splits.Length != 2 || userpass.Length != 2) + { + badConnectionString = true; + break; + } + var username = userpass[0]; + var password = userpass[1]; + var address = splits[1]; + if(String.IsNullOrWhiteSpace(username) || String.IsNullOrWhiteSpace(password) || String.IsNullOrWhiteSpace(address)) + { + badConnectionString = true; + break; + } + argsAsList.RemoveAt(I); + argsAsList.RemoveAt(I); + Server.SetRemoteLoginInformation(address, username, password); + break; + } + } + + if (badConnectionString) + { + Console.WriteLine("Remote connection usage: <-c/--connect> username:password@address"); + return ExitCode.BadCommand; + } + var res = Server.VerifyConnection(); if (res != null) { Console.WriteLine("Unable to connect to service: " + res); + Console.WriteLine("Remote connection usage: <-c/--connect> username:password@address"); return ExitCode.ConnectionError; }