예제 #1
0
        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);
        }
예제 #3
0
 private void MaybeUpdateData()
 {
     if (refresh)
     {
         installationState = Environment.GitInstallationState;
         gitPath           = installationState.GitExecutablePath;
         gitLfsPath        = installationState.GitLfsExecutablePath;
         installDetails    = new GitInstaller.GitInstallDetails(Environment.UserCachePath, Environment);
         refresh           = false;
     }
 }