public CommandTarget ParseTarget(string target) { if (string.IsNullOrEmpty(target)) { return(new FullSuiteTarget(suite)); } else { if (suite.HasProduct(target)) { var product = suite.GetProduct(target); return(new ProductTarget(product)); } if (suite.HasModule(target)) { var module = suite.GetModule(target); return(new ModuleTarget(module)); } else { var matches = new HashSet <Project>(); // Looking for modulename.projectname matches foreach (var module in suite.Modules) { if (target.StartsWith(module.Name + '.', StringComparison.InvariantCultureIgnoreCase)) { string projectName = target.Substring(module.Name.Length + 1); if (module.HasProject(projectName)) { matches.Add(module.GetProject(projectName)); } } } // If there is only one match if (matches.Count == 1) { var project = matches.First(); return(new ProjectTarget(project)); } else { if (matches.Count > 1) { throw new ArgumentException( "The given module and project name identifies more than one projects", "target"); } else { throw new ArgumentException("The given project does not exist", "target"); } } } } }
private void PackProduct(Suite suite, string productName) { if (suite.HasProduct(productName)) { var product = suite.GetProduct(productName); if (product.Packager != null) { var packager = productPackagerFactory.CreateProductPackager(product.Packager.PackagerType); packager.Pack(product, GetProductOutputs(product)); } else { throw new InvalidCommandParameterException("pack", "The product has no packager definition!"); } } else { throw new InvalidCommandParameterException("pack", String.Format("Product {0} is not defined!", productName)); } }
private void PublishProduct(Suite suite, string productName) { if (suite.HasProduct(productName)) { var product = suite.GetProduct(productName); if (product.Packager != null) { var packager = productPackagerFactory.CreateProductPackager(product.Packager.PackagerType); packager.Publish(product); } else { throw new InvalidCommandParameterException("publish", "The product has no packager definition!"); } } else { throw new InvalidCommandParameterException("publish", String.Format("Product {0} is not defined!", productName)); } }