Example #1
0
        public Target Parse(XElement element, BuildProject buildProject)
        {
            var target = new Target();
            target.Name = GetNameOfTarget(element.Attribute("name").Value);
            target.Body = element.ToString();

            if (element.Attribute("depends") != null)
            {
                foreach (var name in Regex.Split(element.Attribute("depends").Value, "[ ,]"))
                {
                    if (name.Trim().Length > 0 && name != ",")
                        target.DependsOn.Add(_targetRepository.Resolve(name));
                }
            }

            foreach (var childNode in element.Elements())
            {
                var parser = _resolver.Resolve(childNode.Name.ToString());
                parser.Parse(childNode, buildProject);
                target.Tasks.Add(parser);
            }

            _targetRepository.Register(target);
            return target;
        }
Example #2
0
 public void Parse(XElement data, BuildProject buildProject)
 {
     OutputTo = data.Attribute("output").Value;
     foreach (XElement element in data.Element("attributes").Elements())
     {
         switch (element.Attribute("type").Value)
         {
             case "ComVisibleAttribute":
                 ComVisible = Convert.ToBoolean(element.Attribute("value").Value);
                 break;
             case "CLSCompliantAttribute":
                 ClsCompliant = Convert.ToBoolean(element.Attribute("value").Value);
                 break;
             case "AssemblyVersionAttribute":
                 Version = element.Attribute("value").Value;
                 break;
             case "AssemblyTitleAttribute":
                 Title = element.Attribute("value").Value;
                 break;
             case "AssemblyDescriptionAttribute":
                 Description = element.Attribute("value").Value;
                 break;
             case "AssemblyCopyrightAttribute":
                 Copyright = element.Attribute("value").Value;
                 break;
         }
     }
 }
 public void Setup()
 {
     _project = new BuildProject();
     _dirBaseProperty = new Property("dirBase", "c:\\temp");
     _project.AddProperty(_dirBaseProperty);
     _subject = new OutputGenerator(_project);
 }
 public void Parse(XElement data, BuildProject buildProject)
 {
     foreach (var element in data.Elements())
     {
         var fileSetStatement = new FileSetStatement();
         fileSetStatement.Type = element.Name.ToString();
         fileSetStatement.Name = element.Attribute("name").Value;
         Statements.Add(fileSetStatement);
     }
 }
Example #5
0
        public void Parse(XElement data, BuildProject buildProject)
        {
            _originalData = data;
            var references = data.Element("references");

            if (references != null)
            {
                foreach (var element in references.Elements("include"))
                {
                  References.Add(element.Attribute("name").Value);
                }
            }

            Target = data.Attribute("target").Value;
            Output = data.Attribute("output").Value;
        }
        public void Setup()
        {
            var data = new StringBuilder();
            data.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");

            data.AppendLine("<project name=\"IglooCoder Commons\" default=\"basic\">");
            data.AppendLine("   <property name=\"nant.settings.currentframework\" value=\"net-3.5\" />");
            data.AppendLine("   <property name=\"variable1\" value=\"hahaha\" />");

            data.AppendLine("   <echo value=\"something that is not a property or target\"/>");

            data.AppendLine("   <target name=\"test.run\">");
            data.AppendLine("       <exec basedir=\"${dir.base}\" workingdir=\"${dir.base}\" program=\"${tools.nunit.console}\" commandline=\"${dir.compile}\\${name.commons.tests} /xml:${dir.results.unittests}\\${output.results.unittests.name}\"/>");
            data.AppendLine("   </target>");
            data.AppendLine("   <target name=\"compile\">");
            data.AppendLine("       <exec basedir=\"${dir.base}\" workingdir=\"${dir.base}\" program=\"${tools.nunit.console}\" commandline=\"${dir.compile}\\${name.commons.tests} /xml:${dir.results.unittests}\\${output.results.unittests.name}\"/>");
            data.AppendLine("   </target>");

            data.AppendLine("</project>");

            XDocument doc = XDocument.Parse(data.ToString());
            _subject = new NantBuildFileParser();
            _buildProject = _subject.ParseDocument(doc);
        }
        public BuildProject ParseDocument(XDocument document)
        {
            var buildProject = new BuildProject();
            var parser = new TargetParser();

            var projectNode = document.Root; //get the project node
            if (projectNode == null)
                throw new ApplicationException("Could not open root node");

            if (projectNode.Attribute("default") != null)
                buildProject.DefaultTarget = projectNode.Attribute("default").Value;

            foreach (var childNode in projectNode.Elements("property"))
            {
                var property = new Property(childNode.Attribute("name").Value, childNode.Attribute("value").Value);
                buildProject.AddProperty(property);
            }

            foreach (var childNode in projectNode.Elements("target"))
            {
                buildProject.Targets.Add(parser.Parse(childNode, buildProject));
                //childNode.Attribute("name").Value.Replace(".", "_"), childNode.ToString());
            }

            IEnumerable<XElement> unkownElements = from XElement unkownElement in projectNode.Elements()
                                                   where
                                                       unkownElement.Name != "target" &&
                                                       unkownElement.Name != "property"
                                                   select unkownElement;

            foreach (XElement unkownElement in unkownElements)
            {
                buildProject.Unkown.Add(unkownElement.Name.ToString(), unkownElement.ToString());
            }
            return buildProject;
        }
Example #8
0
 public void Parse(XElement data, BuildProject buildProject)
 {
     _data = data.ToString();
 }
Example #9
0
 public void Parse(XElement data, BuildProject buildProject)
 {
     Target = data.Attribute("target").Value;
 }
Example #10
0
 public OutputGenerator(BuildProject project)
 {
     _project = project;
     ExistingVariables = new List<string>();
 }