public string CreateArgString() { var args = new List <string>(); RuntimeArguments.IterateAllArguments((name, value) => { if (value != null) { args.Add(CommandLineHelper.CreateArgString(name, value)); } return(true); }); return(String.Join(" ", args)); }
public override ExitCodeType Run(IDataLoadJob job, GracefulCancellationToken cancellationToken) { var db = RuntimeArguments.StageSpecificArguments.DbInfo; _loadStage = RuntimeArguments.StageSpecificArguments.LoadStage; if (!Exists()) { throw new Exception("The sql file " + Filepath + " does not exist"); } string commandText; try { commandText = File.ReadAllText(Filepath); // Any string arguments refer to tokens that are to be replaced in the SQL file foreach (var kvp in RuntimeArguments.GetAllArgumentsOfType <string>()) { var value = kvp.Value; if (value.Contains("<DatabaseServer>")) { value = value.Replace("<DatabaseServer>", RuntimeArguments.StageSpecificArguments.DbInfo.Server.Name); } if (value.Contains("<DatabaseName>")) { value = value.Replace("<DatabaseName>", RuntimeArguments.StageSpecificArguments.DbInfo.GetRuntimeName()); } commandText = commandText.Replace("##" + kvp.Key + "##", value); } } catch (Exception e) { throw new Exception("Could not read the sql file at " + Filepath + ": " + e); } job.OnNotify(this, new NotifyEventArgs(ProgressEventType.Information, "Executing script " + Filepath + " (" + db.DescribeDatabase() + ")")); var executer = new ExecuteSqlInDleStage(job, _loadStage); return(executer.Execute(commandText, db)); }
private static async Task Main(string[] args) { Console.Title = ConsoleStrings.BOT_NAME; _miunie = ActivatorUtilities.CreateInstance <MiunieBot>(InversionOfControl.Provider); _args = ArgumentsParser.Parse(args); if (_args.Headless) { await RunHeadless(); } _serverMenu = new ServerMenu(_miunie); _configManager = InversionOfControl.Provider.GetRequiredService <ConfigManager>(); _editor = InversionOfControl.Provider.GetRequiredService <ConfigurationFileEditor>(); _miunie.MiunieDiscord.ConnectionChanged += MiunieOnConnectionStateChanged; await HandleInput(); }