Skip to content

Commit d27c893

Browse files
authored
Merge pull request #553 from intersystems/issue-463
Added git path interpretation
2 parents 05af5f5 + 72c99e3 commit d27c893

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717
- Fix left-sidebar spacing (#525)
1818
- Fixed slowness loading some CSP pages with multiple instances sharing a webserver (#540)
1919
- Prevent direct commits to default merge branch in basic mode (#484)
20+
- Fixed git path configuration (#463)
2021
- Added feedback to settings page (#550)
2122

2223
## [2.6.0] - 2024-10-07

cls/SourceControl/Git/Settings.cls

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,13 @@ ClassMethod Configure() As %Boolean [ CodeMode = objectgenerator ]
170170
set propertyDef = ##class(%Dictionary.PropertyDefinition).%OpenId("SourceControl.Git.Settings||"_property_"")
171171
if ((propertyDef) && (propertyDef.Type = "%Boolean")) {
172172
do %code.WriteLine(" set response = ##class(%Library.Prompt).GetYesNo("_promptQuoted_",.value,,"_defaultPromptFlag_")")
173+
} elseif ((propertyDef) && (propertyDef.Name = "gitBinPath")) {
174+
do %code.WriteLine(" set valid = 0")
175+
do %code.WriteLine(" while ('valid) {")
176+
do %code.WriteLine(" set response = ##class(%Library.Prompt).GetString("_promptQuoted_",.value,,,,"_defaultPromptFlag_")")
177+
do %code.WriteLine(" set status = inst.ConfigureBinPath(.value)")
178+
do %code.WriteLine(" if (status) { set valid = 1 }")
179+
do %code.WriteLine(" }")
173180
} elseif ((propertyDef) && (propertyDef.Name = "basicMode")) {
174181
set basicModePromptFlag = defaultPromptFlag + $$$MatchExactArrayMask + $$$InitialDisplayMask
175182
do %code.WriteLine(" set list(1) = ""Yes""")
@@ -341,4 +348,36 @@ Method OnAfterConfigure() As %Boolean
341348
}
342349
}
343350

351+
Method ConfigureBinPath(ByRef path As %String) As %Boolean
352+
{
353+
if (path = "") { return 1 }
354+
// Sometimes path is quoted
355+
set path = $replace(path,"""","")
356+
if (##class(%File).DirectoryExists(path)) {
357+
set gitFile = $case($$$isWINDOWS,1:"git.exe",:"git")
358+
set path = ##class(%File).Construct(path, gitFile)
359+
}
360+
361+
if (##class(%File).Exists(path)) {
362+
// no-op
363+
} else {
364+
write !, "The entered path is not a valid path, please try again"
365+
return 0
366+
}
367+
try {
368+
set sysStorage = ##class(SourceControl.Git.Utils).%SYSNamespaceStorage()
369+
kill @sysStorage@("%gitBinPath")
370+
if (..gitBinPath '= "") {
371+
set @sysStorage@("%gitBinPath") = path
372+
}
373+
kill ^||GitVersion
374+
// Get and write the version
375+
set gitExists = ##class(SourceControl.Git.Utils).GitBinExists(.version)
376+
write !, "You are now using "_version
377+
} catch e {
378+
// no-op, user may not have privileges
379+
}
380+
return 1
381+
}
382+
344383
}

0 commit comments

Comments
 (0)