@@ -14,20 +14,24 @@ class GitInstallDetails
1414 public const string GitExtractedMD5 = "e6cfc0c294a2312042f27f893dfc9c0a" ;
1515 public const string GitLfsExtractedMD5 = "36e3ae968b69fbf42dff72311040d24a" ;
1616
17+ public const string WindowsGitExecutableMD5 = "50570ed932559f294d1a1361801740b9" ;
18+ public const string MacGitExecutableMD5 = "" ;
19+
1720 public const string WindowsGitLfsExecutableMD5 = "177bb14d0c08f665a24f0d5516c3b080" ;
1821 public const string MacGitLfsExecutableMD5 = "f81a1a065a26a4123193e8fd96c561ad" ;
1922
20- public const string FileListMD5 = "a152a216b2e76f6c127053251187a278" ;
21-
2223 private const string PackageVersion = "f02737a78695063deace08e96d5042710d3e32db" ;
2324 private const string PackageName = "PortableGit" ;
2425
2526 private readonly bool onWindows ;
2627
27- public GitInstallDetails ( NPath targetInstallPath , bool onWindows )
28+ public GitInstallDetails ( NPath pluginDataPath , bool onWindows )
2829 {
2930 this . onWindows = onWindows ;
30- var gitInstallPath = targetInstallPath . Combine ( ApplicationInfo . ApplicationName , PackageNameWithVersion ) ;
31+
32+ PluginDataPath = pluginDataPath ;
33+
34+ var gitInstallPath = PluginDataPath . Combine ( PackageNameWithVersion ) ;
3135 GitInstallationPath = gitInstallPath ;
3236
3337 if ( onWindows )
@@ -55,6 +59,7 @@ public NPath GetGitLfsExecutablePath(NPath gitInstallRoot)
5559 : gitInstallRoot . Combine ( "libexec" , "git-core" , GitLfsExecutable ) ;
5660 }
5761
62+ public NPath PluginDataPath { get ; }
5863 public NPath GitInstallationPath { get ; }
5964 public string GitExecutable { get ; }
6065 public NPath GitExecutablePath { get ; }
@@ -183,21 +188,20 @@ private NPath MoveGitAndLfs(NPath gitExtractPath, NPath gitLfsExtractPath, NPath
183188
184189 private ITask CreateDownloadTask ( )
185190 {
186- var tempZipPath = NPath . CreateTempDirectory ( "git_zip_paths" ) ;
187- gitArchiveFilePath = tempZipPath . Combine ( "git.zip" ) ;
188- gitLfsArchivePath = tempZipPath . Combine ( "git-lfs.zip" ) ;
191+ gitArchiveFilePath = installDetails . PluginDataPath . Combine ( "git.zip" ) ;
192+ gitLfsArchivePath = installDetails . PluginDataPath . Combine ( "git-lfs.zip" ) ;
189193
190194 var downloadGitMd5Task = new DownloadTextTask ( TaskManager . Instance . Token , environment . FileSystem ,
191- installDetails . GitZipMd5Url , tempZipPath ) ;
195+ installDetails . GitZipMd5Url , installDetails . PluginDataPath ) ;
192196
193197 var downloadGitTask = new DownloadTask ( TaskManager . Instance . Token , environment . FileSystem ,
194- installDetails . GitZipUrl , tempZipPath ) ;
198+ installDetails . GitZipUrl , installDetails . PluginDataPath ) ;
195199
196200 var downloadGitLfsMd5Task = new DownloadTextTask ( TaskManager . Instance . Token , environment . FileSystem ,
197- installDetails . GitLfsZipMd5Url , tempZipPath ) ;
201+ installDetails . GitLfsZipMd5Url , installDetails . PluginDataPath ) ;
198202
199203 var downloadGitLfsTask = new DownloadTask ( TaskManager . Instance . Token , environment . FileSystem ,
200- installDetails . GitLfsZipUrl , tempZipPath ) ;
204+ installDetails . GitLfsZipUrl , installDetails . PluginDataPath ) ;
201205
202206 return
203207 downloadGitMd5Task . Then ( ( b , s ) => { downloadGitTask . ValidationHash = s ; } )
@@ -215,19 +219,21 @@ private bool IsGitExtracted()
215219 return false ;
216220 }
217221
218- var fileListMD5 = environment . FileSystem . CalculateFolderMD5 ( installDetails . GitInstallationPath , false ) ;
219- if ( ! fileListMD5 . Equals ( GitInstallDetails . FileListMD5 , StringComparison . InvariantCultureIgnoreCase ) )
222+ var gitExecutableMd5 = environment . FileSystem . CalculateFileMD5 ( installDetails . GitExecutablePath ) ;
223+ var expectedGitExecutableMd5 = environment . IsWindows ? GitInstallDetails . WindowsGitExecutableMD5 : GitInstallDetails . MacGitExecutableMD5 ;
224+
225+ if ( ! expectedGitExecutableMd5 . Equals ( gitExecutableMd5 , StringComparison . InvariantCultureIgnoreCase ) )
220226 {
221- Logger . Warning ( $ "Path { installDetails . GitInstallationPath } has MD5 { fileListMD5 } expected { GitInstallDetails . FileListMD5 } ") ;
227+ Logger . Warning ( $ "Path { installDetails . GitExecutablePath } has MD5 { gitExecutableMd5 } expected { expectedGitExecutableMd5 } ") ;
222228 return false ;
223229 }
224230
225- var calculateMd5 = environment . FileSystem . CalculateFileMD5 ( installDetails . GitLfsExecutablePath ) ;
226- var md5 = environment . IsWindows ? GitInstallDetails . WindowsGitLfsExecutableMD5 : GitInstallDetails . MacGitLfsExecutableMD5 ;
231+ var gitLfsExecutableMd5 = environment . FileSystem . CalculateFileMD5 ( installDetails . GitLfsExecutablePath ) ;
232+ var expectedGitLfsExecutableMd5 = environment . IsWindows ? GitInstallDetails . WindowsGitLfsExecutableMD5 : GitInstallDetails . MacGitLfsExecutableMD5 ;
227233
228- if ( ! md5 . Equals ( calculateMd5 , StringComparison . InvariantCultureIgnoreCase ) )
234+ if ( ! expectedGitLfsExecutableMd5 . Equals ( gitLfsExecutableMd5 , StringComparison . InvariantCultureIgnoreCase ) )
229235 {
230- Logger . Warning ( $ "Path { installDetails . GitLfsExecutablePath } has MD5 { calculateMd5 } expected { md5 } ") ;
236+ Logger . Warning ( $ "Path { installDetails . GitLfsExecutablePath } has MD5 { gitLfsExecutableMd5 } expected { expectedGitLfsExecutableMd5 } ") ;
231237 return false ;
232238 }
233239
0 commit comments