public GitLock(string id, NPath path, GitUser owner, DateTimeOffset locked_at) { this.id = id; this.path = path.IsInitialized ? path.ToString() : null; this.owner = owner; this.lockedAtString = locked_at.ToUniversalTime().ToString(Constants.Iso8601FormatZ, CultureInfo.InvariantCulture); }
private NPath MoveOctorun(NPath fromPath) { var toPath = installDetails.InstallationPath; Logger.Trace("MoveOctorun fromPath: {0} toPath:{1}", fromPath.ToString(), toPath.ToString()); CopyHelper.Copy(fromPath, toPath); return(installDetails.ExecutablePath); }
public static NPath Resolve(this NPath path) { // Add a reference to Mono.Posix with an .rsp file in the Assets folder with the line "-r:Mono.Posix.dll" for this to work #if ENABLE_MONO if (!path.IsInitialized || !NPath.IsUnix /* nothing to resolve on windows */ || path.IsRelative || !path.FileExists()) { return(path); } return(new NPath(Mono.Unix.UnixPath.GetCompleteRealPath(path.ToString()))); #else return(path); #endif }
public void Configure(ProcessStartInfo psi, NPath workingDirectory, bool dontSetupGit = false) { GeneralConfigure(psi, workingDirectory); if (dontSetupGit) { return; } //if (gitInstallPath == NPath.Default || gitInstallPath != Environment.GitInstallPath) Reset(); var pathEntries = new List <string>(envPath); string separator = Environment.IsWindows ? ";" : ":"; // we can only set this env var if there is a libexec/git-core. git will bypass internally bundled tools if this env var // is set, which will break Apple's system git on certain tools (like osx-credentialmanager) if (libExecPath.IsInitialized) { psi.EnvironmentVariables["GIT_EXEC_PATH"] = libExecPath.ToString(); } pathEntries.Add("END"); var path = string.Join(separator, pathEntries.ToArray()) + separator + Environment.Path; var pathEnvVarKey = Environment.GetEnvironmentVariableKey("PATH"); psi.EnvironmentVariables[pathEnvVarKey] = path; //if (Environment.IsWindows) //{ // psi.EnvironmentVariables["PLINK_PROTOCOL"] = "ssh"; // psi.EnvironmentVariables["TERM"] = "msys"; //} var httpProxy = Environment.GetEnvironmentVariable("HTTP_PROXY"); if (!string.IsNullOrEmpty(httpProxy)) { psi.EnvironmentVariables["HTTP_PROXY"] = httpProxy; } var httpsProxy = Environment.GetEnvironmentVariable("HTTPS_PROXY"); if (!string.IsNullOrEmpty(httpsProxy)) { psi.EnvironmentVariables["HTTPS_PROXY"] = httpsProxy; } psi.EnvironmentVariables["DISPLAY"] = "0"; if (!Environment.IsWindows) { psi.EnvironmentVariables["GIT_TEMPLATE_DIR"] = Environment.GitInstallPath.Combine("share/git-core/templates"); } if (Environment.IsLinux) { psi.EnvironmentVariables["PREFIX"] = Environment.GitExecutablePath.Parent; } var sslCAInfo = Environment.GetEnvironmentVariable("GIT_SSL_CAINFO"); if (string.IsNullOrEmpty(sslCAInfo)) { var certFile = basePath.Combine("ssl/cacert.pem"); if (certFile.FileExists()) { psi.EnvironmentVariables["GIT_SSL_CAINFO"] = certFile.ToString(); } } /* * psi.WorkingDirectory = workingDirectory; * psi.EnvironmentVariables["HOME"] = NPath.HomeDirectory; * psi.EnvironmentVariables["TMP"] = psi.EnvironmentVariables["TEMP"] = NPath.SystemTemp; * * var path = Environment.Path; * psi.EnvironmentVariables["GHU_WORKINGDIR"] = workingDirectory; * var pathEnvVarKey = Environment.GetEnvironmentVariableKey("PATH"); * * if (dontSetupGit) * { * psi.EnvironmentVariables["GHU_FULLPATH"] = path; * psi.EnvironmentVariables[pathEnvVarKey] = path; * return; * } * * Guard.ArgumentNotNull(psi, "psi"); * * var pathEntries = new List<string>(); * string separator = Environment.IsWindows ? ";" : ":"; * * NPath libexecPath = NPath.Default; * List<string> gitPathEntries = new List<string>(); * if (Environment.GitInstallPath.IsInitialized) * { * var gitPathRoot = Environment.GitExecutablePath.Resolve().Parent.Parent; * var gitExecutableDir = Environment.GitExecutablePath.Parent; // original path to git (might be different from install path if it's a symlink) * * var baseExecPath = gitPathRoot; * var binPath = baseExecPath; * if (Environment.IsWindows) * { * if (baseExecPath.DirectoryExists("mingw32")) * baseExecPath = baseExecPath.Combine("mingw32"); * else * baseExecPath = baseExecPath.Combine("mingw64"); * binPath = baseExecPath.Combine("bin"); * } * * libexecPath = baseExecPath.Combine("libexec", "git-core"); * if (!libexecPath.DirectoryExists()) * libexecPath = NPath.Default; * * if (Environment.IsWindows) * { * gitPathEntries.AddRange(new[] { gitPathRoot.Combine("cmd").ToString(), gitPathRoot.Combine("usr", "bin") }); * } * else * { * gitPathEntries.Add(gitExecutableDir.ToString()); * } * * if (libexecPath.IsInitialized) * gitPathEntries.Add(libexecPath); * gitPathEntries.Add(binPath); * * // we can only set this env var if there is a libexec/git-core. git will bypass internally bundled tools if this env var * // is set, which will break Apple's system git on certain tools (like osx-credentialmanager) * if (libexecPath.IsInitialized) * psi.EnvironmentVariables["GIT_EXEC_PATH"] = libexecPath.ToString(); * } * * if (Environment.GitLfsInstallPath.IsInitialized && libexecPath != Environment.GitLfsInstallPath) * { * pathEntries.Add(Environment.GitLfsInstallPath); * } * if (gitPathEntries.Count > 0) * pathEntries.AddRange(gitPathEntries); * * pathEntries.Add("END"); * * path = string.Join(separator, pathEntries.ToArray()) + separator + path; * * psi.EnvironmentVariables["GHU_FULLPATH"] = path; * psi.EnvironmentVariables[pathEnvVarKey] = path; * * //TODO: Remove with Git LFS Locking becomes standard * psi.EnvironmentVariables["GITLFSLOCKSENABLED"] = "1"; * * if (Environment.IsWindows) * { * psi.EnvironmentVariables["PLINK_PROTOCOL"] = "ssh"; * psi.EnvironmentVariables["TERM"] = "msys"; * } * * var httpProxy = Environment.GetEnvironmentVariable("HTTP_PROXY"); * if (!string.IsNullOrEmpty(httpProxy)) * psi.EnvironmentVariables["HTTP_PROXY"] = httpProxy; * * var httpsProxy = Environment.GetEnvironmentVariable("HTTPS_PROXY"); * if (!string.IsNullOrEmpty(httpsProxy)) * psi.EnvironmentVariables["HTTPS_PROXY"] = httpsProxy; * psi.EnvironmentVariables["DISPLAY"] = "0"; */ }