From 4d8c717fc4969cae343cd675753eb162e9fba56c Mon Sep 17 00:00:00 2001 From: Bernhard Richter Date: Mon, 8 Feb 2021 21:55:20 +0100 Subject: [PATCH 1/2] Quote chmod as it failes with folders containing spaces. fixes #605 --- src/Dotnet.Script.Core/Scaffolder.cs | 2 +- src/Dotnet.Script.Tests/ScaffoldingTests.cs | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Dotnet.Script.Core/Scaffolder.cs b/src/Dotnet.Script.Core/Scaffolder.cs index 78cb9339..ef66970a 100644 --- a/src/Dotnet.Script.Core/Scaffolder.cs +++ b/src/Dotnet.Script.Core/Scaffolder.cs @@ -63,7 +63,7 @@ public void CreateNewScriptFile(string fileName, string currentDirectory) RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { // mark .csx file as executable, this activates the shebang to run dotnet-script as interpreter - _commandRunner.Execute($"/bin/chmod", $"+x {pathToScriptFile}"); + _commandRunner.Execute($"/bin/chmod", $"+x \"{pathToScriptFile}\""); } _scriptConsole.WriteSuccess($"...'{pathToScriptFile}' [Created]"); } diff --git a/src/Dotnet.Script.Tests/ScaffoldingTests.cs b/src/Dotnet.Script.Tests/ScaffoldingTests.cs index c5dcd506..3aff20da 100644 --- a/src/Dotnet.Script.Tests/ScaffoldingTests.cs +++ b/src/Dotnet.Script.Tests/ScaffoldingTests.cs @@ -25,6 +25,8 @@ public void ShouldInitializeScriptFolder() { using (var scriptFolder = new DisposableFolder()) { + ScriptTestRunner.Default.ExecuteInProcess($"init {scriptFolder.Path}"); + var (output, exitCode) = ScriptTestRunner.Default.Execute("init", scriptFolder.Path); Assert.Equal(0, exitCode); @@ -34,6 +36,24 @@ public void ShouldInitializeScriptFolder() } } + [Fact] + public void ShouldInitializeScriptFolderContainingWhitespace() + { + using (var scriptFolder = new DisposableFolder()) + { + var path = Path.Combine(scriptFolder.Path, "Folder with whitespace"); + Directory.CreateDirectory(path); + + var (output, exitCode) = ScriptTestRunner.Default.Execute("init", path); + + Assert.Equal(0, exitCode); + Assert.DoesNotContain("No such file or directory", output, StringComparison.OrdinalIgnoreCase); + Assert.True(File.Exists(Path.Combine(path, "main.csx"))); + Assert.True(File.Exists(Path.Combine(path, "omnisharp.json"))); + Assert.True(File.Exists(Path.Combine(path, ".vscode", "launch.json"))); + } + } + [OnlyOnUnixFact] public void ShouldRegisterToRunCsxScriptDirectly() { From d38a4c911003912a70ae4f08a3505aae54f617ff Mon Sep 17 00:00:00 2001 From: Bernhard Richter Date: Mon, 8 Feb 2021 22:45:24 +0100 Subject: [PATCH 2/2] Fix scaffolding tests --- src/Dotnet.Script.Tests/ScaffoldingTests.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Dotnet.Script.Tests/ScaffoldingTests.cs b/src/Dotnet.Script.Tests/ScaffoldingTests.cs index 3aff20da..0c8f48cf 100644 --- a/src/Dotnet.Script.Tests/ScaffoldingTests.cs +++ b/src/Dotnet.Script.Tests/ScaffoldingTests.cs @@ -25,8 +25,6 @@ public void ShouldInitializeScriptFolder() { using (var scriptFolder = new DisposableFolder()) { - ScriptTestRunner.Default.ExecuteInProcess($"init {scriptFolder.Path}"); - var (output, exitCode) = ScriptTestRunner.Default.Execute("init", scriptFolder.Path); Assert.Equal(0, exitCode);