tools/builder/Config.cs
author David Anderson <dvander@alliedmods.net>
Sun Nov 25 18:50:13 2007 +0000 (2007-11-25)
changeset 1725 ea875bcbc286
parent 1548 e759eedf6c9b
child 1816 269bbfbfbcac
permissions -rw-r--r--
small clarification to param2 in MenuAction_End
dvander@388
     1
using System;
dvander@388
     2
using System.IO;
dvander@388
     3
using System.Text;
dvander@388
     4
dvander@388
     5
namespace builder
dvander@388
     6
{
dvander@388
     7
	public enum BasePlatform
dvander@388
     8
	{
dvander@388
     9
		Platform_Windows,
dvander@388
    10
		Platform_Linux
dvander@388
    11
	};
dvander@388
    12
dvander@388
    13
	public class Config
dvander@388
    14
	{
dvander@1548
    15
		public string source_path;
dvander@1548
    16
		public string pkg_path;
dvander@1548
    17
		public string builder_path;
dvander@1548
    18
		public string build_options;
dvander@388
    19
		public builder.BasePlatform Platform;
dvander@388
    20
dvander@388
    21
		public Config()
dvander@388
    22
		{
dvander@388
    23
			if ((int)System.Environment.OSVersion.Platform == 128)
dvander@388
    24
			{
dvander@388
    25
				Platform = BasePlatform.Platform_Linux;
dvander@388
    26
			} 
dvander@388
    27
			else 
dvander@388
    28
			{
dvander@388
    29
				Platform = BasePlatform.Platform_Windows;
dvander@388
    30
			}
dvander@388
    31
		}
dvander@388
    32
dvander@388
    33
		public static string PathFormat(string format, params string [] args)
dvander@388
    34
		{
dvander@388
    35
			string temp = string.Format(format, args);
dvander@388
    36
			return temp.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
dvander@388
    37
		}
dvander@388
    38
dvander@388
    39
		public bool ReadFromFile(string file)
dvander@388
    40
		{
dvander@388
    41
			bool read = true;
dvander@388
    42
			StreamReader sr = null;
dvander@388
    43
			try
dvander@388
    44
			{
dvander@388
    45
				sr = new StreamReader(file);
dvander@388
    46
dvander@388
    47
				string line;
dvander@388
    48
				string delim = "\t \n\r\v";
dvander@388
    49
				string split = "=";
dvander@388
    50
				
dvander@388
    51
				while ( (line = sr.ReadLine()) != null )
dvander@388
    52
				{
dvander@388
    53
					line = line.Trim(delim.ToCharArray());
dvander@388
    54
					if (line.Length < 1 || line[0] == ';')
dvander@388
    55
					{
dvander@388
    56
						continue;
dvander@388
    57
					}
dvander@388
    58
					string [] s = line.Split(split.ToCharArray());
dvander@388
    59
					string key, val = "";
dvander@388
    60
					if (s.GetLength(0) >= 1)
dvander@388
    61
					{
dvander@388
    62
						key = s[0];
dvander@388
    63
						if (s.GetLength(0) >= 2)
dvander@388
    64
						{
dvander@388
    65
							for (int i=1; i<s.GetLength(0); i++)
dvander@388
    66
							{
dvander@388
    67
								val += s[i];
dvander@388
    68
							}
dvander@388
    69
						}
dvander@388
    70
						key = key.Trim(delim.ToCharArray());
dvander@388
    71
						val = val.Trim(delim.ToCharArray());
dvander@388
    72
						if (key.CompareTo("SourceBase") == 0)
dvander@388
    73
						{
dvander@1548
    74
							source_path = val;
dvander@388
    75
						} 
dvander@388
    76
						else if (key.CompareTo("OutputBase") == 0) 
dvander@388
    77
						{
dvander@1548
    78
							pkg_path = val;
dvander@388
    79
						} 
dvander@388
    80
						else if (key.CompareTo("BuilderPath") == 0) 
dvander@388
    81
						{
dvander@1548
    82
							builder_path = val;
dvander@467
    83
						} 
dvander@467
    84
						else if (key.CompareTo("BuildOptions") == 0) 
dvander@467
    85
						{
dvander@1548
    86
							build_options = val;
dvander@388
    87
						}
dvander@388
    88
					}
dvander@388
    89
				}
dvander@388
    90
			} 
dvander@388
    91
			catch (System.Exception e)
dvander@388
    92
			{
dvander@388
    93
				Console.WriteLine("Unable to read {0:s}: {1:s}", file, e.Message);
dvander@388
    94
				read = false;
dvander@388
    95
			}
dvander@388
    96
dvander@388
    97
			if (sr != null)
dvander@388
    98
			{
dvander@388
    99
				sr.Close();
dvander@388
   100
			}
dvander@388
   101
dvander@388
   102
			return read;
dvander@388
   103
		}
dvander@388
   104
	}
dvander@388
   105
}