protected override Task <int> ExecuteCoreAsync() { if (!Parent.Checker.Check(ExtensionFilePaths.Values)) { Error.WriteLine($"Extensions could not be loaded. See output for details."); return(Task.FromResult(ExitCodeFailure)); } // Loading all of the extensions should succeed as the dependency checker will have already // loaded them. var extensions = new RazorExtension[ExtensionNames.Values.Count]; for (var i = 0; i < ExtensionNames.Values.Count; i++) { extensions[i] = new AssemblyExtension(ExtensionNames.Values[i], Parent.Loader.LoadFromPath(ExtensionFilePaths.Values[i])); } var version = RazorLanguageVersion.Parse(Version.Value()); var configuration = RazorConfiguration.Create(version, Configuration.Value(), extensions); var sourceItems = GetSourceItems(ProjectDirectory.Value(), Sources.Values, Outputs.Values, RelativePaths.Values, DocumentKinds.Values); var result = ExecuteCore( configuration: configuration, projectDirectory: ProjectDirectory.Value(), tagHelperManifest: TagHelperManifest.Value(), sourceItems: sourceItems); return(Task.FromResult(result)); }
protected override bool ValidateArguments() { if (Sources.Values.Count == 0) { Error.WriteLine($"{Sources.ValueName} should have at least one value."); return(false); } if (Outputs.Values.Count != Sources.Values.Count) { Error.WriteLine($"{Sources.ValueName} has {Sources.Values.Count}, but {Outputs.ValueName} has {Outputs.Values.Count}."); } if (RelativePaths.Values.Count != Sources.Values.Count) { Error.WriteLine($"{Sources.ValueName} has {Sources.Values.Count}, but {RelativePaths.ValueName} has {RelativePaths.Values.Count}."); } if (string.IsNullOrEmpty(ProjectDirectory.Value())) { ProjectDirectory.Values.Add(Environment.CurrentDirectory); } return(true); }
protected override bool ValidateArguments() { if (string.IsNullOrEmpty(TagHelperManifest.Value())) { Error.WriteLine($"{TagHelperManifest.ValueName} must be specified."); return(false); } if (Assemblies.Values.Count == 0) { Error.WriteLine($"{Assemblies.Name} must have at least one value."); return(false); } if (string.IsNullOrEmpty(ProjectDirectory.Value())) { ProjectDirectory.Values.Add(Environment.CurrentDirectory); } if (string.IsNullOrEmpty(Version.Value())) { Error.WriteLine($"{Version.ValueName} must be specified."); return(false); } else if (!RazorLanguageVersion.TryParse(Version.Value(), out _)) { Error.WriteLine($"{Version.ValueName} is not a valid language version."); return(false); } if (string.IsNullOrEmpty(Configuration.Value())) { Error.WriteLine($"{Configuration.ValueName} must be specified."); return(false); } if (ExtensionNames.Values.Count != ExtensionFilePaths.Values.Count) { Error.WriteLine($"{ExtensionNames.ValueName} and {ExtensionFilePaths.ValueName} should have the same number of values."); } foreach (var filePath in ExtensionFilePaths.Values) { if (!Path.IsPathRooted(filePath)) { Error.WriteLine($"Extension file paths must be fully-qualified, absolute paths."); return(false); } } if (!Parent.Checker.Check(ExtensionFilePaths.Values)) { Error.WriteLine($"Extenions could not be loaded. See output for details."); return(false); } return(true); }
protected override bool ValidateArguments() { if (Sources.Values.Count == 0) { Error.WriteLine($"{Sources.Description} should have at least one value."); return(false); } if (Outputs.Values.Count != Sources.Values.Count) { Error.WriteLine($"{Sources.Description} has {Sources.Values.Count}, but {Outputs.Description} has {Outputs.Values.Count} values."); } if (RelativePaths.Values.Count != Sources.Values.Count) { Error.WriteLine($"{Sources.Description} has {Sources.Values.Count}, but {RelativePaths.Description} has {RelativePaths.Values.Count} values."); } if (string.IsNullOrEmpty(ProjectDirectory.Value())) { ProjectDirectory.Values.Add(Environment.CurrentDirectory); } if (string.IsNullOrEmpty(Version.Value())) { Error.WriteLine($"{Version.Description} must be specified."); return(false); } else if (!RazorLanguageVersion.TryParse(Version.Value(), out _)) { Error.WriteLine($"Invalid option {Version.Value()} for Razor language version --version; must be Latest or a valid version in range {RazorLanguageVersion.Version_1_0} to {RazorLanguageVersion.Latest}."); return(false); } if (string.IsNullOrEmpty(Configuration.Value())) { Error.WriteLine($"{Configuration.Description} must be specified."); return(false); } if (ExtensionNames.Values.Count != ExtensionFilePaths.Values.Count) { Error.WriteLine($"{ExtensionNames.Description} and {ExtensionFilePaths.Description} should have the same number of values."); } foreach (var filePath in ExtensionFilePaths.Values) { if (!Path.IsPathRooted(filePath)) { Error.WriteLine($"Extension file paths must be fully-qualified, absolute paths."); return(false); } } return(true); }
public CommonOptions Value() => new CommonOptions { Assembly = Assembly.Value(), StartupAssembly = StartupAssembly.Value(), DataDirectory = DataDirectory.Value(), ProjectDirectory = ProjectDirectory.Value(), ContentRootPath = ContentRootPath.Value(), RootNamespace = RootNamespace.Value() };
protected override Task <int> ExecuteCoreAsync() { var result = ExecuteCore( projectDirectory: ProjectDirectory.Value(), tagHelperManifest: TagHelperManifest.Value(), sources: Sources.Values, outputs: Outputs.Values, relativePaths: RelativePaths.Values); return(Task.FromResult(result)); }
protected override Task <int> ExecuteCoreAsync() { // Loading all of the extensions should succeed as the dependency checker will have already // loaded them. var extensions = new RazorExtension[ExtensionNames.Values.Count]; for (var i = 0; i < ExtensionNames.Values.Count; i++) { extensions[i] = new AssemblyExtension(ExtensionNames.Values[i], Parent.Loader.LoadFromPath(ExtensionFilePaths.Values[i])); } var version = RazorLanguageVersion.Parse(Version.Value()); var configuration = RazorConfiguration.Create(version, Configuration.Value(), extensions); var result = ExecuteCore( configuration: configuration, projectDirectory: ProjectDirectory.Value(), outputFilePath: TagHelperManifest.Value(), assemblies: Assemblies.Values.ToArray()); return(Task.FromResult(result)); }
protected override bool ValidateArguments() { if (Sources.Values.Count == 0) { Error.WriteLine($"{Sources.Description} should have at least one value."); return(false); } if (Outputs.Values.Count != Sources.Values.Count) { Error.WriteLine($"{Sources.Description} has {Sources.Values.Count}, but {Outputs.Description} has {Outputs.Values.Count} values."); return(false); } if (RelativePaths.Values.Count != Sources.Values.Count) { Error.WriteLine($"{Sources.Description} has {Sources.Values.Count}, but {RelativePaths.Description} has {RelativePaths.Values.Count} values."); return(false); } if (FileKinds.Values.Count != 0 && FileKinds.Values.Count != Sources.Values.Count) { // 2.x tasks do not specify FileKinds - in which case, no values will be present. If a kind for one file is specified, we expect as many kind entries // as sources. Error.WriteLine($"{Sources.Description} has {Sources.Values.Count}, but {FileKinds.Description} has {FileKinds.Values.Count} values."); return(false); } if (CssScopeSources.Values.Count != CssScopeValues.Values.Count) { // CssScopeSources and CssScopeValues arguments must appear as matched pairs Error.WriteLine($"{CssScopeSources.Description} has {CssScopeSources.Values.Count}, but {CssScopeValues.Description} has {CssScopeValues.Values.Count} values."); return(false); } if (string.IsNullOrEmpty(ProjectDirectory.Value())) { ProjectDirectory.Values.Add(Environment.CurrentDirectory); } if (string.IsNullOrEmpty(Version.Value())) { Error.WriteLine($"{Version.Description} must be specified."); return(false); } else if (!RazorLanguageVersion.TryParse(Version.Value(), out _)) { Error.WriteLine($"Invalid option {Version.Value()} for Razor language version --version; must be Latest or a valid version in range {RazorLanguageVersion.Version_1_0} to {RazorLanguageVersion.Latest}."); return(false); } if (string.IsNullOrEmpty(Configuration.Value())) { Error.WriteLine($"{Configuration.Description} must be specified."); return(false); } if (ExtensionNames.Values.Count != ExtensionFilePaths.Values.Count) { Error.WriteLine($"{ExtensionNames.Description} and {ExtensionFilePaths.Description} should have the same number of values."); } foreach (var filePath in ExtensionFilePaths.Values) { if (!Path.IsPathRooted(filePath)) { Error.WriteLine($"Extension file paths must be fully-qualified, absolute paths."); return(false); } } return(true); }