Browse Source

refactor

pull/1296/head
Yunus Emre Kalkan 7 years ago
parent
commit
2162246cb1
  1. 31
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
  2. 41
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LatestNpmPackageVersionFinder.cs
  3. 8
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  4. 29
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs

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

@ -71,7 +71,7 @@ namespace Volo.Abp.Cli
private void CheckDependencies()
{
var installedNpmPackages = GetInstalledNpmPackages();
var installedNpmPackages = CmdHelper.RunCmdAndGetOutput("npm list -g --depth 0");
if (!installedNpmPackages.Contains(" yarn@"))
{
@ -83,35 +83,6 @@ namespace Volo.Abp.Cli
}
}
private string GetInstalledNpmPackages()
{
var output = "";
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo(CmdHelper.GetFileName())
{
Arguments = CmdHelper.GetArguments("npm list -g --depth 0"),
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
process.Start();
using (var stdOut = process.StandardOutput)
{
using (var stdErr = process.StandardError)
{
output = stdOut.ReadToEnd();
output += stdErr.ReadToEnd();
}
}
}
return output;
}
private void InstallYarn()
{
Logger.LogInformation("Installing yarn...");

41
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LatestNpmPackageVersionFinder.cs

@ -1,41 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.ProjectModification
{
public class LatestNpmPackageVersionFinder : ITransientDependency
{
public string Find(string packageName)
{
var output = "";
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo(CmdHelper.GetFileName())
{
Arguments = CmdHelper.GetArguments($"npm show {packageName} version"),
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
process.Start();
using (var stdOut = process.StandardOutput)
{
using (var stdErr = process.StandardError)
{
output = stdOut.ReadToEnd();
output += stdErr.ReadToEnd();
}
}
}
return output.Trim();
}
}
}

8
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

@ -8,7 +8,6 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Volo.Abp.Cli.Commands;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
@ -18,14 +17,12 @@ namespace Volo.Abp.Cli.ProjectModification
{
public ILogger<NpmPackagesUpdater> Logger { get; set; }
private readonly LatestNpmPackageVersionFinder _latestNpmPackageVersionFinder;
private readonly PackageJsonFileFinder _packageJsonFileFinder;
private readonly Dictionary<string, string> _fileVersionStorage = new Dictionary<string, string>();
public NpmPackagesUpdater(LatestNpmPackageVersionFinder latestNpmPackageVersionFinder, PackageJsonFileFinder packageJsonFileFinder)
public NpmPackagesUpdater(PackageJsonFileFinder packageJsonFileFinder)
{
_latestNpmPackageVersionFinder = latestNpmPackageVersionFinder;
_packageJsonFileFinder = packageJsonFileFinder;
Logger = NullLogger<NpmPackagesUpdater>.Instance;
@ -87,7 +84,8 @@ namespace Volo.Abp.Cli.ProjectModification
return _fileVersionStorage[package.Name];
}
var version = _latestNpmPackageVersionFinder.Find(package.Name);
var version = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} version");
_fileVersionStorage[package.Name] = version;
return version;

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

@ -17,6 +17,35 @@ namespace Volo.Abp.Cli.Utils
Process.Start(procStartInfo).WaitForExit();
}
public static string RunCmdAndGetOutput(string command)
{
var output = "";
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo(CmdHelper.GetFileName())
{
Arguments = CmdHelper.GetArguments(command),
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
process.Start();
using (var stdOut = process.StandardOutput)
{
using (var stdErr = process.StandardError)
{
output = stdOut.ReadToEnd();
output += stdErr.ReadToEnd();
}
}
}
return output.Trim();
}
public static string GetArguments(string command)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux))

Loading…
Cancel
Save