Beispiel #1
0
        private void addVersion(AutoVarData avd, string app, string version)
        {
            string        file          = avd.getFile(app, "ver");
            var           x             = Xml.Open(Xml.FromFile(file), "versions");
            bool          added         = false;
            List <string> foundVersions = new List <string>();

            readVariables(x, avd);

            foreach (var e in x.ElementsNamed("for"))
            {
                string ver = e.GetAttributeString("version").ToLower();
                foundVersions.Add(ver);
                if (ver == version)
                {
                    readVariables(e, avd);
                    added = true;
                }
            }

            if (added == false)
            {
                throw new Exception("Didnt find version " + version + " in " + file + " found " + new StringListCombiner(", ", " and ", "none").combine(foundVersions));
            }
        }
Beispiel #2
0
 private void add(AutoVarData avd, string type, System.Xml.XmlElement x)
 {
     if (type == "projectfolder")
     {
         add(x.GetAttributeString("target"), avd.ProjectFolder);
     }
     else if (type == "installfolder")
     {
         add(x.GetAttributeString("target"), avd.InstallFolder);
     }
     else if (type == "enviroment")
     {
         add(x.GetAttributeString("target"), Environment.GetEnvironmentVariable(x.GetFirstText()));
     }
     else if (type == "version")
     {
         addVersion(avd, x.GetAttributeString("for"), x.GetAttributeString("version").ToLower());
     }
     else if (type == "external")
     {
         add(avd.externals.get(x.GetAttributeString("ui"), x.GetAttributeString("target"), x.GetAttributeString("description")));
     }
     else
     {
         throw new Exception("unknwon autovar " + type);
     }
 }
Beispiel #3
0
 internal static IEnumerable <BuildAction> Read(XmlElement root, AutoVarData avd, BuildEnviroment parent)
 {
     foreach (var e in Xml.ElementsNamed(root, "action"))
     {
         BuildAction action = new BuildAction(BuildEnviroment.Read(e, avd, parent), Xml.GetAttributeString(e, "type"), Xml.GetAttributeString(e, "context"), Xml.GetAttributeString(e, "description"), Xml.GetAttributeString(e, "base"));
         yield return(action);
     }
 }
Beispiel #4
0
 private static IEnumerable <Group> Read(XmlElement root, AutoVarData avd, BuildEnviroment parent)
 {
     foreach (var x in root.ElementsNamed("group"))
     {
         Group g = new Group("");
         Group.Read(x, g, avd, parent);
         yield return(g);
     }
 }
Beispiel #5
0
        internal static BuildEnviroment Read(System.Xml.XmlElement root, AutoVarData avd, BuildEnviroment parent)
        {
            BuildEnviroment env = new BuildEnviroment();

            env.Parent = parent;

            env.readVariables(root, avd);

            return(env);
        }
Beispiel #6
0
        private void readVariables(System.Xml.XmlElement root, AutoVarData avd)
        {
            foreach (var x in root.ElementsNamed("var"))
            {
                add(x.GetAttributeString("name"), x.GetFirstText());
            }

            foreach (var x in root.ElementsNamed("autovar"))
            {
                add(avd, x.GetAttributeString("type").Trim().ToLower(), x);
            }
        }
Beispiel #7
0
        public static Group Load(string file, ExternalVariableList ev)
        {
            XmlElement root = Xml.Open(Xml.FromFile(file), "project");
            Group      p    = new Group(Xml.GetAttributeString(root, "name"));

            AutoVarData avd = new AutoVarData();

            avd.externals     = ev;
            avd.ProjectFolder = new FileInfo(file).Directory.FullName;
            Read(root, p, avd, null);

            return(p);
        }
Beispiel #8
0
        public static BaseAction Load(string name, BuildEnviroment env)
        {
            string file = Path.Combine(AutoVarData.GetInstallFolder(), Path.ChangeExtension(name, "act"));

            var        root = Xml.Open(Xml.FromFile(file), "action");
            BaseAction act  = new BaseAction();

            act.add(CreateMatchingActions(root, env));
            if (act.commands.Count == 0)
            {
                throw new Exception("Missing commands for " + name);
            }
            return(act);
        }
Beispiel #9
0
 private static void Read(XmlElement root, Group p, AutoVarData avd, BuildEnviroment parent)
 {
     p.enviroment = BuildEnviroment.Read(root, avd, parent);
     p.actions    = new List <BuildAction>(BuildAction.Read(root, avd, p.enviroment));
     p.groups     = new List <Group>(Group.Read(root, avd, p.enviroment));
 }