@@ -14,20 +14,24 @@ class GitInstallDetails
14
14
public const string GitExtractedMD5 = "e6cfc0c294a2312042f27f893dfc9c0a" ;
15
15
public const string GitLfsExtractedMD5 = "36e3ae968b69fbf42dff72311040d24a" ;
16
16
17
+ public const string WindowsGitExecutableMD5 = "50570ed932559f294d1a1361801740b9" ;
18
+ public const string MacGitExecutableMD5 = "" ;
19
+
17
20
public const string WindowsGitLfsExecutableMD5 = "177bb14d0c08f665a24f0d5516c3b080" ;
18
21
public const string MacGitLfsExecutableMD5 = "f81a1a065a26a4123193e8fd96c561ad" ;
19
22
20
- public const string FileListMD5 = "a152a216b2e76f6c127053251187a278" ;
21
-
22
23
private const string PackageVersion = "f02737a78695063deace08e96d5042710d3e32db" ;
23
24
private const string PackageName = "PortableGit" ;
24
25
25
26
private readonly bool onWindows ;
26
27
27
- public GitInstallDetails ( NPath targetInstallPath , bool onWindows )
28
+ public GitInstallDetails ( NPath pluginDataPath , bool onWindows )
28
29
{
29
30
this . onWindows = onWindows ;
30
- var gitInstallPath = targetInstallPath . Combine ( ApplicationInfo . ApplicationName , PackageNameWithVersion ) ;
31
+
32
+ PluginDataPath = pluginDataPath ;
33
+
34
+ var gitInstallPath = PluginDataPath . Combine ( PackageNameWithVersion ) ;
31
35
GitInstallationPath = gitInstallPath ;
32
36
33
37
if ( onWindows )
@@ -55,6 +59,7 @@ public NPath GetGitLfsExecutablePath(NPath gitInstallRoot)
55
59
: gitInstallRoot . Combine ( "libexec" , "git-core" , GitLfsExecutable ) ;
56
60
}
57
61
62
+ public NPath PluginDataPath { get ; }
58
63
public NPath GitInstallationPath { get ; }
59
64
public string GitExecutable { get ; }
60
65
public NPath GitExecutablePath { get ; }
@@ -183,21 +188,20 @@ private NPath MoveGitAndLfs(NPath gitExtractPath, NPath gitLfsExtractPath, NPath
183
188
184
189
private ITask CreateDownloadTask ( )
185
190
{
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" ) ;
189
193
190
194
var downloadGitMd5Task = new DownloadTextTask ( TaskManager . Instance . Token , environment . FileSystem ,
191
- installDetails . GitZipMd5Url , tempZipPath ) ;
195
+ installDetails . GitZipMd5Url , installDetails . PluginDataPath ) ;
192
196
193
197
var downloadGitTask = new DownloadTask ( TaskManager . Instance . Token , environment . FileSystem ,
194
- installDetails . GitZipUrl , tempZipPath ) ;
198
+ installDetails . GitZipUrl , installDetails . PluginDataPath ) ;
195
199
196
200
var downloadGitLfsMd5Task = new DownloadTextTask ( TaskManager . Instance . Token , environment . FileSystem ,
197
- installDetails . GitLfsZipMd5Url , tempZipPath ) ;
201
+ installDetails . GitLfsZipMd5Url , installDetails . PluginDataPath ) ;
198
202
199
203
var downloadGitLfsTask = new DownloadTask ( TaskManager . Instance . Token , environment . FileSystem ,
200
- installDetails . GitLfsZipUrl , tempZipPath ) ;
204
+ installDetails . GitLfsZipUrl , installDetails . PluginDataPath ) ;
201
205
202
206
return
203
207
downloadGitMd5Task . Then ( ( b , s ) => { downloadGitTask . ValidationHash = s ; } )
@@ -215,19 +219,21 @@ private bool IsGitExtracted()
215
219
return false ;
216
220
}
217
221
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 ) )
220
226
{
221
- Logger . Warning ( $ "Path { installDetails . GitInstallationPath } has MD5 { fileListMD5 } expected { GitInstallDetails . FileListMD5 } ") ;
227
+ Logger . Warning ( $ "Path { installDetails . GitExecutablePath } has MD5 { gitExecutableMd5 } expected { expectedGitExecutableMd5 } ") ;
222
228
return false ;
223
229
}
224
230
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 ;
227
233
228
- if ( ! md5 . Equals ( calculateMd5 , StringComparison . InvariantCultureIgnoreCase ) )
234
+ if ( ! expectedGitLfsExecutableMd5 . Equals ( gitLfsExecutableMd5 , StringComparison . InvariantCultureIgnoreCase ) )
229
235
{
230
- Logger . Warning ( $ "Path { installDetails . GitLfsExecutablePath } has MD5 { calculateMd5 } expected { md5 } ") ;
236
+ Logger . Warning ( $ "Path { installDetails . GitLfsExecutablePath } has MD5 { gitLfsExecutableMd5 } expected { expectedGitLfsExecutableMd5 } ") ;
231
237
return false ;
232
238
}
233
239
0 commit comments