Modernize administrator and Mono version checks #3933
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivations
--asroot
flag to bypass this, but it's Linux-only. Windows users are just as likely to benefit from this guardrail. It's also implemented entirely within CmdLine, even though it could in principle apply more generally.Platform.IsMonoFourOrLater
andPlatform.IsOnMonoFourOrLater
have been unused since Master search bar and misc GUI clean-up #3041Changes
Platform.IsAdministrator()
IsWindows
section that checks for administrator or system roles--asadmin
alias for the--asroot
flag, but I could not find a mechanism for that in the command line parser library, and I don't want to break existing scripts or shortcuts by changing itPlatform.IsOnMonoFourOrLater
andCmdLine.Options.CheckMonoVersion
is moved to aPlatform.MonoVersion
fieldPlatform.RecommendedMonoVersion
), which is still pretty old but not as guaranteed ancient as 3.1.0RegexExtensions.TryMatch
function to check a regex for a match and use its output within a functional-style expression