Browse Source

CmdHelper improvements

pull/1131/head
Yunus Emre Kalkan 7 years ago
parent
commit
7f2f24d3c1
  1. 14
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
  2. 7
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationAdder.cs
  3. 26
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs

14
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs

@ -2,6 +2,7 @@
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
@ -9,6 +10,7 @@ using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands;
using Volo.Abp.Cli.NuGet;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli
@ -70,7 +72,7 @@ namespace Volo.Abp.Cli
private void CheckDependencies()
{
var installedNpmPackages = GetInstalledNpmPackages();
if (!installedNpmPackages.Contains(" yarn@"))
{
InstallYarn();
@ -87,9 +89,9 @@ namespace Volo.Abp.Cli
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo("CMD.exe")
process.StartInfo = new ProcessStartInfo(CmdHelper.GetFileName())
{
Arguments = "/C npm list -g --depth 0",
Arguments = CmdHelper.GetArguments("npm list -g --depth 0"),
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
@ -113,15 +115,13 @@ namespace Volo.Abp.Cli
private void InstallYarn()
{
Logger.LogInformation("Installing yarn...");
var process = Process.Start("CMD.exe", "/C npm install yarn -g");
process.WaitForExit();
CmdHelper.RunCmd("npm install yarn -g");
}
private void InstallGulp()
{
Logger.LogInformation("Installing gulp...");
var process = Process.Start("CMD.exe", "/C npm install gulp -g");
process.WaitForExit();
CmdHelper.RunCmd("npm install gulp -g");
}
private async Task CheckForNewVersion()

7
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationAdder.cs

@ -1,6 +1,7 @@
using System;
using System.Diagnostics;
using System.IO;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.ProjectModification
@ -12,8 +13,7 @@ namespace Volo.Abp.Cli.ProjectModification
var moduleName = ParseModuleName(module);
var migrationName = "Added_" + moduleName + "_Module" + GetUniquePostFix();
var process = Process.Start("CMD.exe", "/C cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef migrations add " + migrationName);
process.WaitForExit();
CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef migrations add " + migrationName);
if (updateDatabase)
{
@ -23,8 +23,7 @@ namespace Volo.Abp.Cli.ProjectModification
protected void UpdateDatabase(string csprojFile)
{
var process = Process.Start("CMD.exe", "/C cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef database update");
process.WaitForExit();
CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef database update");
}
protected virtual string ParseModuleName(string fullModuleName)

26
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs

@ -1,4 +1,5 @@
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace Volo.Abp.Cli.Utils
{
@ -12,8 +13,31 @@ namespace Volo.Abp.Cli.Utils
public static void RunCmd(string command)
{
var procStartInfo = new ProcessStartInfo("cmd.exe", "/C " + command);
var procStartInfo = new ProcessStartInfo(GetFileName(), GetArguments(command));
Process.Start(procStartInfo).WaitForExit();
}
public static string GetArguments(string command)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
return "-c \"" + command + "\"";
}
//Windows default.
return "/C \"" + command + "\"";
}
public static string GetFileName()
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
//TODO: Test this. it should work for both operaion systems.
return "/bin/bash";
}
//Windows default.
return "cmd.exe";
}
}
}

Loading…
Cancel
Save