8000 Fixes #723 shebang before sdk · dotnet-script/dotnet-script@df73e88 · GitHub
[go: up one dir, main page]

Skip to content

Commit df73e88

Browse files
committed
Fixes #723 shebang before sdk
1 parent 1169314 commit df73e88

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/Dotnet.Script.DependencyModel/ProjectSystem/ScriptParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public ParseResult ParseFromFiles(IEnumerable<string> csxFiles)
5353
private static string ReadSdkFromReferenceDirective(string fileContent)
5454
{
5555
const string pattern = DirectivePatternPrefix + "r" + SdkDirectivePatternSuffix;
56-
var match = Regex.Match(fileContent, pattern);
56+
var match = Regex.Match(fileContent, pattern, RegexOptions.Multiline);
5757
if (match.Success)
5858
{
5959
var sdk = match.Groups[1].Value;

src/Dotnet.Script.Tests/ScriptProjectProviderTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,17 @@ public void ShouldUseSpecifiedSdk()
4040
var projectFileInfo = provider.CreateProject(TestPathUtils.GetPathToTestFixtureFolder("WebApi"), _scriptEnvironment.TargetFramework, true);
4141
Assert.Equal("Microsoft.NET.Sdk.Web", XDocument.Load(projectFileInfo.Path).Descendants("Project").Single().Attributes("Sdk").Single().Value);
4242
}
43+
44+
// See: https://github.com/dotnet-script/dotnet-script/issues/723
45+
[Theory]
46+
[InlineData("#!/usr/bin/env dotnet-script\n#r \"sdk:Microsoft.NET.Sdk.Web\"")]
47+
[InlineData("#!/usr/bin/env dotnet-script\n\n#r \"sdk:Microsoft.NET.Sdk.Web\"")]
48+
public void ShouldHandleShebangBeforeSdk(string code)
49+
{
50+
var parser = new ScriptParser(TestOutputHelper.CreateTestLogFactory());
51+
var result = parser.ParseFromCode(code);
52+
53+
Assert.Equal("Microsoft.NET.Sdk.Web", result.Sdk);
54+
}
4355
}
4456
}

0 commit comments

Comments
 (0)
0