Browse Source

Update PowerShell working directory to the userprofile directory on opening the Package Management console.

pull/15/head
Matt Ward 15 years ago
parent
commit
8ab1b6f961
  1. 2
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InvokeUpdateWorkingDirectoryCmdlet.cs
  2. 2
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InvokeUpdateWorkingDirectoryCmdletTests.cs
  3. 23
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs
  4. 7
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PowerShellWorkingDirectory.cs
  5. 28
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs
  6. 2
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PowerShellWorkingDirectoryTests.cs

2
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InvokeUpdateWorkingDirectoryCmdlet.cs

@ -48,7 +48,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets
void UpdateWorkingDirectory(string directory) void UpdateWorkingDirectory(string directory)
{ {
string command = String.Format("Set-Location '{0}'", directory); string command = String.Format("Set-Location {0}", directory);
InvokeScript(command); InvokeScript(command);
} }
} }

2
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InvokeUpdateWorkingDirectoryCmdletTests.cs

@ -50,7 +50,7 @@ namespace PackageManagement.Cmdlets.Tests
string commandExecuted = cmdlet.ScriptPassedToInvokeScript; string commandExecuted = cmdlet.ScriptPassedToInvokeScript;
string expectedCommandExecuted = @"Set-Location '$env:USERPROFILE'"; string expectedCommandExecuted = @"Set-Location $env:USERPROFILE";
Assert.AreEqual(expectedCommandExecuted, commandExecuted); Assert.AreEqual(expectedCommandExecuted, commandExecuted);
} }

23
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs

@ -106,6 +106,7 @@ namespace ICSharpCode.PackageManagement.Scripting
powerShellHost.SetRemoteSignedExecutionPolicy(); powerShellHost.SetRemoteSignedExecutionPolicy();
UpdateFormatting(); UpdateFormatting();
RedefineClearHostFunction(); RedefineClearHostFunction();
UpdateWorkingDirectory();
} }
void CreatePowerShellHost() void CreatePowerShellHost()
@ -132,14 +133,6 @@ namespace ICSharpCode.PackageManagement.Scripting
powerShellHost.ExecuteCommand(command); powerShellHost.ExecuteCommand(command);
} }
void InitializePackageScriptsForOpenSolution()
{
if (Solution.IsOpen) {
string command = "Invoke-InitializePackages";
powerShellHost.ExecuteCommand(command);
}
}
void WriteInfoBeforeFirstPrompt() void WriteInfoBeforeFirstPrompt()
{ {
WriteNuGetVersionInfo(); WriteNuGetVersionInfo();
@ -153,6 +146,20 @@ namespace ICSharpCode.PackageManagement.Scripting
WriteLine(versionInfo); WriteLine(versionInfo);
} }
void UpdateWorkingDirectory()
{
string command = "Invoke-UpdateWorkingDirectory";
powerShellHost.ExecuteCommand(command);
}
void InitializePackageScriptsForOpenSolution()
{
if (Solution.IsOpen) {
string command = "Invoke-InitializePackages";
powerShellHost.ExecuteCommand(command);
}
}
void WriteLine(string message) void WriteLine(string message)
{ {
ScriptingConsole.WriteLine(message, ScriptingStyle.Out); ScriptingConsole.WriteLine(message, ScriptingStyle.Out);

7
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PowerShellWorkingDirectory.cs

@ -19,9 +19,14 @@ namespace ICSharpCode.PackageManagement.Scripting
{ {
Solution solution = projectService.OpenSolution; Solution solution = projectService.OpenSolution;
if (solution != null) { if (solution != null) {
return solution.Directory; return QuotedDirectory(solution.Directory);
} }
return "$env:USERPROFILE"; return "$env:USERPROFILE";
} }
string QuotedDirectory(string directory)
{
return String.Format("'{0}'", directory);
}
} }
} }

28
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs

@ -497,5 +497,33 @@ namespace PackageManagement.Tests.Scripting
Assert.IsFalse(executed); Assert.IsFalse(executed);
} }
[Test]
public void Run_SolutionIsNotOpenWhenConsoleRun_PowerShellWorkingDirectoryIsUpdated()
{
CreateHost();
fakeSolution.IsOpen = false;
RunHost();
string command = "Invoke-UpdateWorkingDirectory";
bool executed = powerShellHost.AllCommandsPassedToExecuteCommand.Contains(command);
Assert.IsTrue(executed);
}
[Test]
public void Run_SolutionIsOpenWhenConsoleRun_PowerShellWorkingDirectoryIsUpdated()
{
CreateHost();
fakeSolution.IsOpen = true;
RunHost();
string command = "Invoke-UpdateWorkingDirectory";
bool executed = powerShellHost.AllCommandsPassedToExecuteCommand.Contains(command);
Assert.IsTrue(executed);
}
} }
} }

2
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PowerShellWorkingDirectoryTests.cs

@ -44,7 +44,7 @@ namespace PackageManagement.Tests.Scripting
string directory = workingDirectory.GetWorkingDirectory(); string directory = workingDirectory.GetWorkingDirectory();
string expectedDirectory = @"d:\projects\MyProject"; string expectedDirectory = @"'d:\projects\MyProject'";
Assert.AreEqual(expectedDirectory, directory); Assert.AreEqual(expectedDirectory, directory);
} }

Loading…
Cancel
Save