Beispiel #1
0
        static int Main(string[] args) {
	        try{
		        if (null != args && 0 != args.Length){
			        var wdir = Array.IndexOf(args, "--workdir");
			        if (-1 != wdir){
				        Environment.CurrentDirectory = Path.GetFullPath(args[wdir + 1]);
			        }
		        }

		        var builder = new BSharpBuilder();
		        var adict = new ConsoleArgumentHelper().ParseDictionary(args);
		        if (adict.ContainsKey("debug")){
			        Debugger.Launch();
		        }
		        var log = SetupLog(adict);
		        var project = SetupProject(adict, log, builder);
		        builder.Log = log;
		        builder.Initialize(project);
		        var resultContext = builder.Build();
		        WriteOutErrors(resultContext, log);
		        return 0;
	        }
	        catch (Exception ex){
		        Console.Error.WriteLine(ex.ToString());
		        return -1;
	        }
        }
Beispiel #2
0
        private static IBSharpProject DoBuild(IDictionary <string, string> adict, IUserLog log, BSharpBuilder builder, bool errorsafe = false)
        {
            var project = SetupProject(adict, log, builder);

            project.NoOutput = ConsoleMode;
            try
            {
                builder.Log = log;
                builder.Initialize(project);
                var resultContext = builder.Build();

                if (ConsoleMode)
                {
                    WriteOutConsoleMode(resultContext);
                }
                else
                {
                    WriteOutErrors(resultContext, log);
                }
            }
            catch (Exception e)
            {
                if (errorsafe)
                {
                    project.Log.Error("Error in cycle " + e, e);
                    return(project);
                }
                throw;
            }

            return(project);
        }