public BuildStepCompileVSNet(Builder oBuilder, string sProject, string sConfiguration)
        {
            m_oBuilder = oBuilder;

            m_sProject = sProject;
            m_sConfiguration = sConfiguration;
        }
        public BuildStepMSBuild(Builder oBuilder, string sProject, string sConfiguration)
        {
            m_oBuilder = oBuilder;

            m_sProject = sProject;
            m_sConfiguration = sConfiguration;
        }
        public BuildStepWriteFile(Builder oBuilder, string sFileName, string sContents)
        {
            m_oBuilder = oBuilder;

            m_sFilename = sFileName;
            m_sContents = sContents;
        }
        public BuildStepSubversion(Builder oBuilder, SVNAction a, string sDirectory)
        {
            m_oBuilder = oBuilder;

            m_eAction = a;
            m_sDirectory = sDirectory;
        }
        public BuildStepRunApplication(Builder oBuilder, string sExecutable, string sArguments)
        {
            m_oBuilder = oBuilder;

            m_sExecutable = sExecutable;
            m_sArguments = sArguments;
        }
        public BuildStepWriteINI(Builder oBuilder, string sFileName, string sSection, string sKey, string sValue)
        {
            m_oBuilder = oBuilder;

            m_sFilename = sFileName;
            m_sSection = sSection;
            m_sKey = sKey;
            m_sValue = sValue;
        }
Beispiel #7
0
        public BuildRunner(
            ManualResetEvent eventStop,
            ManualResetEvent eventStopped,
            Builder oBuilder)
        {
            m_EventStop = eventStop;
            m_EventStopped = eventStopped;

            m_oBuilder = oBuilder;
        }
        public BuildStepClearDirectory(Builder builder, string directory)
        {
            if (string.IsNullOrEmpty(directory))
                throw new ArgumentNullException("Directory must be specified.", "directory");

            if (builder == null)
                throw new ArgumentNullException("Builder must be specified.", "builder");

            m_oBuilder = builder;
            _directory = directory;
        }
Beispiel #9
0
        static void Main(string[] args)
        {
            if (args.Length != 3)
            {
                System.Console.WriteLine("Wrong number of parameters passed to Builder.Console");
                Environment.ExitCode = -1;
                return;
            }

            Settings settings = new Settings();

            settings.LoadSettings();

            BuildLoader loader = new BuildLoader();

            Builder.Common.Builder builder = loader.Load(settings.BuildInstructions);

            // Run all steps.
            builder.StepStart = -1;
            builder.StepEnd   = -1;

            builder.LoadMacros(args[0], args[1], args[2]);

            string result;

            if (!settings.ValidateSettings(builder, out result))
            {
                System.Console.WriteLine(result);
                Environment.ExitCode = -1;
                return;
            }

            builder.LoadSettings(settings);


            ManualResetEvent eventStopThread    = new ManualResetEvent(false);
            ManualResetEvent eventThreadStopped = new ManualResetEvent(false);

            BuildRunner runner = new BuildRunner(eventStopThread, eventThreadStopped, builder);

            runner.StepError   += new BuildRunner.StepErrorDelegate(runner_StepError);
            builder.MessageLog += new Builder.Common.Builder.MessageLogDelegate(builder_MessageLog);
            runner.Run();

            return;
        }
Beispiel #10
0
        public Builder Load(string s)
        {
            Builder oBuilder = new Builder();

            XmlDocument oDoc = new XmlDocument();
            oDoc.LoadXml(s);

            XmlNode oBuildNode = oDoc.ChildNodes[0];

            for (int i = 0; i < oBuildNode.ChildNodes.Count; i++)
            {
                XmlNode oAction = oBuildNode.ChildNodes[i];

                if (oAction.NodeType == XmlNodeType.Comment)
                    continue;

                string sType = oAction.Attributes["type"].Value;

                if (sType == "writefile")
                    AddActionWritefile(oBuilder, oAction);
                else if (sType == "writeini")
                    AddActionWriteIni(oBuilder, oAction);
                else if (sType == "runapplication")
                    AddActionRunApplication(oBuilder, oAction);
                else if (sType == "compilevs")
                    AddActionCompileVS(oBuilder, oAction);
                else if (sType == "msbuild")
                    AddActionMSBuild(oBuilder, oAction);
                else if (sType == "copyfile")
                    AddActionCopyFile(oBuilder, oAction);
                else if (sType == "compileinnosetup")
                    AddActionCompileInnoSetup(oBuilder, oAction);
                else if (sType == "subversion")
                    AddActionSubversion(oBuilder, oAction);
                else if (sType == "cleardirectory")
                    AddActionClearDirectory(oBuilder, oAction);
                else
                {
                    throw new Exception("Unknown build type " + sType);
                }

            }
            return oBuilder;
        }
Beispiel #11
0
        private void LoadSettings()
        {
            Settings settings = new Settings();

            settings.LoadSettings();

            txtPathSource.Text     = settings.SourcePath;
            txtPathVS8.Text        = settings.VSPath;
            txtPathMSBuild.Text    = settings.MSBuildPath;
            txtBuildNumber.Text    = settings.BuildNumber.ToString();
            txtPathInnoSetup.Text  = settings.InnoSetupPath;
            txtVersion.Text        = settings.Version;
            txtPathSubversion.Text = settings.SubversionPath;

            string s = settings.BuildInstructions;

            BuildLoader oBuildLoader = new BuildLoader();

            m_oBuilder = oBuildLoader.Load(s);

            m_oBuilder.MessageLog += new Builder.Common.Builder.MessageLogDelegate(m_oBuilder_MessageLog);

            string s2 = s;
        }
Beispiel #12
0
        private void AddActionWriteIni(Builder oBuilder, XmlNode oNode)
        {
            string sFile = oNode.Attributes["filename"].Value;
            string sSection = oNode.Attributes["section"].Value;
            string sKey = oNode.Attributes["key"].Value;
            string sValue = oNode.Attributes["value"].Value;

            oBuilder.Add(new BuildStepWriteINI(oBuilder, sFile, sSection, sKey, sValue));
        }
Beispiel #13
0
        public bool ValidateSettings(Builder builder, out string result)
        {
            if (!File.Exists(builder.ExpandMacros(VSPath)))
            {
                result = "The Visual Studio executable does not exist in the specified path\r\n";
                return false;
            }

            if (!File.Exists(builder.ExpandMacros(InnoSetupPath)))
            {
                result = "The InnoSetup executable does not exist in the specified path\r\n";
                return false;
            }

            if (!Directory.Exists(builder.ExpandMacros(SourcePath)))
            {
                result = "The hMailserver source code does not exist in the specified path\r\n";
                return false;
            }

            result = "";
            return true;
        }
 public BuildStepInnoSetup(Builder oBuilder, string sProject)
 {
     m_oBuilder = oBuilder;
     m_sProject = sProject;
 }
Beispiel #15
0
        private void AddActionCopyFile(Builder oBuilder, XmlNode oNode)
        {
            string sFrom = oNode.Attributes["from"].Value;
            string sTo = oNode.Attributes["to"].Value;

            bool bOverwrite = false;
            XmlAttribute oAttr = oNode.Attributes["overwrite"];

            if (oAttr != null)
                bOverwrite = oAttr.Value == "true";

            oBuilder.Add(new BuildStepCopyFile(oBuilder, sFrom, sTo, bOverwrite));
        }
Beispiel #16
0
        private void AddActionCompileVS(Builder oBuilder, XmlNode oNode)
        {
            string sFile = oNode.Attributes["filename"].Value;
             string sConfiguration = oNode.Attributes["configuration"].Value;

             oBuilder.Add(new BuildStepCompileVSNet(oBuilder,
                        sFile, sConfiguration));
        }
Beispiel #17
0
        private void AddActionCompileInnoSetup(Builder oBuilder, XmlNode oNode)
        {
            string sFilename = oNode.Attributes["filename"].Value;

            oBuilder.Add(new BuildStepInnoSetup(oBuilder, sFilename));
        }
Beispiel #18
0
        private void AddActionClearDirectory(Builder oBuilder, XmlNode oAction)
        {
            string directory = oAction.Attributes["directory"].Value;

            oBuilder.Add(new BuildStepClearDirectory(oBuilder, directory));
        }
Beispiel #19
0
        private void AddActionWritefile(Builder oBuilder, XmlNode oNode)
        {
            string sFile = oNode.Attributes["filename"].Value;
            string sValue = oNode.Attributes["value"].Value;
            sValue = sValue.Replace("\\r\\n", Environment.NewLine);

            oBuilder.Add(new BuildStepWriteFile(oBuilder, sFile, sValue));
        }
Beispiel #20
0
        private void AddActionSubversion(Builder oBuilder, XmlNode oNode)
        {
            string sAction = oNode.Attributes["action"].Value;
            string sDirectory = oNode.Attributes["directory"].Value;

            BuildStepSubversion.SVNAction svnaction;

            if (sAction == "revert")
                svnaction = BuildStepSubversion.SVNAction.SVNRevert;
            else if (sAction == "update")
                svnaction = BuildStepSubversion.SVNAction.SVNUpdate;
            else
                throw new Exception("Incorrect SubVersion configuration");

            oBuilder.Add(new BuildStepSubversion(oBuilder,svnaction, sDirectory));
        }
Beispiel #21
0
 private void AddActionRunApplication(Builder oBuilder, XmlNode oNode)
 {
     string sFile = oNode.Attributes["filename"].Value;
     string sParameters = oNode.Attributes["parameters"].Value;
     oBuilder.Add(new BuildStepRunApplication(oBuilder, sFile, sParameters));
 }
Beispiel #22
0
        private void LoadSettings()
        {
            Settings settings = new Settings();
             settings.LoadSettings();

             txtPathSource.Text = settings.SourcePath;
             txtPathVS8.Text = settings.VSPath;
             txtBuildNumber.Text = settings.BuildNumber.ToString();
             txtPathInnoSetup.Text = settings.InnoSetupPath;
             txtVersion.Text = settings.Version;
             txtPathSubversion.Text = settings.SubversionPath;

             string s = settings.BuildInstructions;

             BuildLoader oBuildLoader = new BuildLoader();
             m_oBuilder = oBuildLoader.Load(s);

             m_oBuilder.MessageLog += new Builder.Common.Builder.MessageLogDelegate(m_oBuilder_MessageLog);

             string s2 = s;
        }