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.Diagnostics;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -9,6 +10,7 @@ using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Commands;
using Volo.Abp.Cli.NuGet; using Volo.Abp.Cli.NuGet;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli namespace Volo.Abp.Cli
@ -70,7 +72,7 @@ namespace Volo.Abp.Cli
private void CheckDependencies() private void CheckDependencies()
{ {
var installedNpmPackages = GetInstalledNpmPackages(); var installedNpmPackages = GetInstalledNpmPackages();
if (!installedNpmPackages.Contains(" yarn@")) if (!installedNpmPackages.Contains(" yarn@"))
{ {
InstallYarn(); InstallYarn();
@ -87,9 +89,9 @@ namespace Volo.Abp.Cli
using (var process = new Process()) 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, UseShellExecute = false,
CreateNoWindow = true, CreateNoWindow = true,
RedirectStandardOutput = true, RedirectStandardOutput = true,
@ -113,15 +115,13 @@ namespace Volo.Abp.Cli
private void InstallYarn() private void InstallYarn()
{ {
Logger.LogInformation("Installing yarn..."); Logger.LogInformation("Installing yarn...");
var process = Process.Start("CMD.exe", "/C npm install yarn -g"); CmdHelper.RunCmd("npm install yarn -g");
process.WaitForExit();
} }
private void InstallGulp() private void InstallGulp()
{ {
Logger.LogInformation("Installing gulp..."); Logger.LogInformation("Installing gulp...");
var process = Process.Start("CMD.exe", "/C npm install gulp -g"); CmdHelper.RunCmd("npm install gulp -g");
process.WaitForExit();
} }
private async Task CheckForNewVersion() 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;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.ProjectModification namespace Volo.Abp.Cli.ProjectModification
@ -12,8 +13,7 @@ namespace Volo.Abp.Cli.ProjectModification
var moduleName = ParseModuleName(module); var moduleName = ParseModuleName(module);
var migrationName = "Added_" + moduleName + "_Module" + GetUniquePostFix(); var migrationName = "Added_" + moduleName + "_Module" + GetUniquePostFix();
var process = Process.Start("CMD.exe", "/C cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef migrations add " + migrationName); CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef migrations add " + migrationName);
process.WaitForExit();
if (updateDatabase) if (updateDatabase)
{ {
@ -23,8 +23,7 @@ namespace Volo.Abp.Cli.ProjectModification
protected void UpdateDatabase(string csprojFile) protected void UpdateDatabase(string csprojFile)
{ {
var process = Process.Start("CMD.exe", "/C cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef database update"); CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(csprojFile) + "\" & dotnet ef database update");
process.WaitForExit();
} }
protected virtual string ParseModuleName(string fullModuleName) 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.Diagnostics;
using System.Runtime.InteropServices;
namespace Volo.Abp.Cli.Utils namespace Volo.Abp.Cli.Utils
{ {
@ -12,8 +13,31 @@ namespace Volo.Abp.Cli.Utils
public static void RunCmd(string command) 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(); 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