示例#1
0
        internal static void Exec(string binariesDirectory, string dataDirectory, string user)
        {
            string pgControllerExecutablePath = $"{binariesDirectory}{System.IO.Path.DirectorySeparatorChar}{PostgresDefaults.ServerControllerExecutable}";
            string arguments = $"init -D \"{dataDirectory}\" -o \" -U {user} \" ";

            System.Diagnostics.Process serverInitializatorProcess = Process.ProcessController
                                                                    .CreateProcess(pgControllerExecutablePath, arguments);

            Process.ProcessOutput output = Process.ProcessController
                                           .StartAndWaitForExit(serverInitializatorProcess, "Postgres cluster initializing");

            if (output.ExitCode != 0)
            {
                throw new PostgresProcessFinishedWithErrorsException("Cannot initialize Postgres cluster." + output.ToString());
            }
        }
示例#2
0
        internal static void Exec(string binariesDirectory)
        {
            string pgLibLinksFixingScriptPath = Path.Combine(binariesDirectory, "./../scripts/") + "fix_linux_pg_dist_lib_links.sh";

            FileSystem.FileSystem
            .GrantExecutablePermission(pgLibLinksFixingScriptPath);

            string bashExecutable = "/bin/bash";
            string arguments      = $"-c \"{pgLibLinksFixingScriptPath} {binariesDirectory}\"";

            System.Diagnostics.Process serverInitializatorProcess = Process.ProcessController
                                                                    .CreateProcess(bashExecutable, arguments);

            Process.ProcessOutput output = Process.ProcessController
                                           .StartAndWaitForExit(serverInitializatorProcess, $"Execute fix_linux_pg_dist_lib_links.sh");

            if (output.ExitCode != 0)
            {
                throw new PostgresProcessFinishedWithErrorsException("Cannot prepare Pg lib symbolic links." + output.ToString());
            }

            Console.Write(output.ToString());
        }