Пример #1
0
        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");
                        }
                    }
                }
            }
        }
Пример #2
0
 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));
     }
 }
Пример #3
0
 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));
     }
 }