in tools/Workflows/BulkQuery/Program.cs [28:122]
public static void Main(string server, string password, string database,
string username = "admin", DirectoryInfo outputDirectory = null, string extension = "xml", int port = 1984, int threads = 4, bool verbose = false, params string[] args)
{
if (args == null || !args.Any())
{
Console.WriteLine("No script arguments provided");
return;
}
if (string.IsNullOrEmpty(server))
{
Console.WriteLine("No server name or URL provided");
return;
}
if (string.IsNullOrEmpty(password))
{
Console.WriteLine("No password provided");
return;
}
if (string.IsNullOrEmpty(database))
{
Console.WriteLine("No database name provided");
return;
}
if (threads < 0)
{
Console.WriteLine("Invalid value '{0}' provided for threads parameter", threads);
return;
}
if (outputDirectory == null)
{
outputDirectory = new DirectoryInfo(Directory.GetCurrentDirectory());
}
var files = new List<string>();
try
{
foreach (var arg in args)
{
var p = Path.GetDirectoryName(arg);
if (string.IsNullOrEmpty(p))
{
p = Directory.GetCurrentDirectory();
}
Console.WriteLine($"{p} - {Path.GetFileName(arg)}");
var l = Directory.EnumerateFiles(p, Path.GetFileName(arg));
files.AddRange(l);
}
if (!files.Any())
{
Console.WriteLine("No scripts selected");
return;
}
if (verbose)
{
Console.WriteLine("Server {0}", server);
Console.WriteLine("Database {0}", database);
Console.WriteLine("Username {0}", username);
Console.WriteLine("Port {0}", port);
Console.WriteLine("threads {0}", threads);
Console.WriteLine("extension {0}", extension);
Console.WriteLine("Target dir {0}", outputDirectory.ToString());
Console.WriteLine();
Console.WriteLine("Files");
foreach (var file in files)
{
Console.WriteLine(" {0}", file);
}
}
var s = new BaseXInterface.BaseXServer(server, port, username, password);
if (s == null)
{
Console.WriteLine("Unable to connect to server");
return;
}
Extract(s, database, files, outputDirectory, extension, threads, verbose);
}
catch (Exception e)
{
Console.WriteLine("A problem happened during execution. Please review the parameters.");
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
return;
}
}