Browse Source

Cli Update Command: Configure for Angular

resolves https://github.com/abpframework/abp/issues/1645
pull/1653/head
Yunus Emre Kalkan 7 years ago
parent
commit
4a0a2ec7b7
  1. 33
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  2. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageJsonFileFinder.cs

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

@ -43,18 +43,31 @@ namespace Volo.Abp.Cli.ProjectModification
foreach (var file in fileList) foreach (var file in fileList)
{ {
UpdatePackagesInFile(file, out var needsYarnAndGulp); UpdatePackagesInFile(file, out var packagesUpdated);
if (needsYarnAndGulp) if (packagesUpdated)
{ {
RunYarnAndGulp(file); var fileDirectory = Path.GetDirectoryName(file).EnsureEndsWith(Path.DirectorySeparatorChar);
RunYarn(fileDirectory);
if (IsAngularProject(fileDirectory) == false)
{
Thread.Sleep(500);
RunGulp(fileDirectory);
}
} }
} }
} }
protected virtual void UpdatePackagesInFile(string file, out bool needsYarnAndGulp) private bool IsAngularProject(string fileDirectory)
{
return File.Exists(Path.Combine(fileDirectory, "angular.json"));
}
protected virtual void UpdatePackagesInFile(string file, out bool packagesUpdated)
{ {
needsYarnAndGulp = false; packagesUpdated = false;
var fileContent = File.ReadAllText(file); var fileContent = File.ReadAllText(file);
var packageJson = JObject.Parse(fileContent); var packageJson = JObject.Parse(fileContent);
var abpPackages = GetAbpPackagesFromPackageJson(packageJson); var abpPackages = GetAbpPackagesFromPackageJson(packageJson);
@ -70,7 +83,7 @@ namespace Volo.Abp.Cli.ProjectModification
if (updated) if (updated)
{ {
needsYarnAndGulp = true; packagesUpdated = true;
} }
} }
@ -122,14 +135,6 @@ namespace Volo.Abp.Cli.ProjectModification
return abpPackages; return abpPackages;
} }
protected virtual void RunYarnAndGulp(string file)
{
var fileDirectory = Path.GetDirectoryName(file).EnsureEndsWith(Path.DirectorySeparatorChar);
RunYarn(fileDirectory);
Thread.Sleep(500);
RunGulp(fileDirectory);
}
protected virtual void RunGulp(string fileDirectory) protected virtual void RunGulp(string fileDirectory)
{ {
Logger.LogInformation($"Running Gulp on {fileDirectory}"); Logger.LogInformation($"Running Gulp on {fileDirectory}");

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageJsonFileFinder.cs

@ -27,7 +27,14 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
var directory = Path.GetDirectoryName(path); var directory = Path.GetDirectoryName(path);
return Directory.GetFiles(directory, "*.csproj", searchOption: SearchOption.TopDirectoryOnly).Any(); if (directory == null)
{
return false;
}
return
Directory.GetFiles(directory, "*.csproj", searchOption: SearchOption.TopDirectoryOnly).Any() ||
File.Exists(Path.Combine(directory, "angular.json"));
} }
} }
} }

Loading…
Cancel
Save