public DefaultEnvironment() { if (IsWindows) { LocalAppData = GetSpecialFolder(Environment.SpecialFolder.LocalApplicationData).ToNPath(); CommonAppData = GetSpecialFolder(Environment.SpecialFolder.CommonApplicationData).ToNPath(); } else if (IsMac) { LocalAppData = NPath.HomeDirectory.Combine("Library", "Application Support"); // there is no such thing on the mac that is guaranteed to be user accessible (/usr/local might not be) CommonAppData = GetSpecialFolder(Environment.SpecialFolder.ApplicationData).ToNPath(); } else { LocalAppData = GetSpecialFolder(Environment.SpecialFolder.LocalApplicationData).ToNPath(); CommonAppData = GetSpecialFolder(Environment.SpecialFolder.ApplicationData).ToNPath(); } UserCachePath = LocalAppData.Combine(ApplicationInfo.ApplicationName); SystemCachePath = CommonAppData.Combine(ApplicationInfo.ApplicationName); if (IsMac) { LogPath = NPath.HomeDirectory.Combine("Library/Logs").Combine(ApplicationInfo.ApplicationName).Combine(logFile); } else { LogPath = UserCachePath.Combine(logFile); } LogPath.EnsureParentDirectoryExists(); GitDefaultInstallation = new GitInstaller.GitInstallDetails(UserCachePath, this); }
public ApplicationEnvironment(string applicationName = null) : base(applicationName ?? ApplicationInfo.ApplicationName) { LocalAppData = GetFolder(Folders.LocalApplicationData); CommonAppData = GetFolder(Folders.CommonApplicationData); UserCachePath = LocalAppData.Combine(ApplicationName).EnsureDirectoryExists(); SystemCachePath = CommonAppData.Combine(ApplicationName).EnsureDirectoryExists(); LogPath = GetFolder(Folders.Logs).Combine(ApplicationName).EnsureDirectoryExists().Combine(logFile); GitDefaultInstallation = new GitInstaller.GitInstallDetails(UserCachePath, this); }
private void MaybeUpdateData() { if (refresh) { installationState = Environment.GitInstallationState; gitPath = installationState.GitExecutablePath; gitLfsPath = installationState.GitLfsExecutablePath; installDetails = new GitInstaller.GitInstallDetails(Environment.UserCachePath, Environment); refresh = false; } }