tools/builder/Config.cs
author David Anderson <dvander@alliedmods.net>
Thu Jun 07 18:50:52 2007 +0000 (2007-06-07)
changeset 916 39ae94ad60ce
parent 467 8192f64d8f57
child 1548 e759eedf6c9b
permissions -rw-r--r--
Fixed bugs amb352 and amb274
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@388
    15
		public string SourceBase;
dvander@388
    16
		public string OutputBase;
dvander@388
    17
		public string BuilderPath;
dvander@388
    18
		public string CompressOptions;
dvander@388
    19
		public string SVNVersion;
dvander@388
    20
		public string ProductVersion;
dvander@403
    21
		public string Compressor;
dvander@467
    22
		public string BuildOptions;
dvander@388
    23
		public builder.BasePlatform Platform;
dvander@388
    24
dvander@388
    25
		public Config()
dvander@388
    26
		{
dvander@388
    27
			if ((int)System.Environment.OSVersion.Platform == 128)
dvander@388
    28
			{
dvander@388
    29
				Platform = BasePlatform.Platform_Linux;
dvander@388
    30
			} 
dvander@388
    31
			else 
dvander@388
    32
			{
dvander@388
    33
				Platform = BasePlatform.Platform_Windows;
dvander@388
    34
			}
dvander@388
    35
		}
dvander@388
    36
dvander@388
    37
		public static string PathFormat(string format, params string [] args)
dvander@388
    38
		{
dvander@388
    39
			string temp = string.Format(format, args);
dvander@388
    40
			return temp.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
dvander@388
    41
		}
dvander@388
    42
dvander@388
    43
		public bool ReadFromFile(string file)
dvander@388
    44
		{
dvander@388
    45
			bool read = true;
dvander@388
    46
			StreamReader sr = null;
dvander@388
    47
			try
dvander@388
    48
			{
dvander@388
    49
				sr = new StreamReader(file);
dvander@388
    50
dvander@388
    51
				string line;
dvander@388
    52
				string delim = "\t \n\r\v";
dvander@388
    53
				string split = "=";
dvander@388
    54
				
dvander@388
    55
				while ( (line = sr.ReadLine()) != null )
dvander@388
    56
				{
dvander@388
    57
					line = line.Trim(delim.ToCharArray());
dvander@388
    58
					if (line.Length < 1 || line[0] == ';')
dvander@388
    59
					{
dvander@388
    60
						continue;
dvander@388
    61
					}
dvander@388
    62
					string [] s = line.Split(split.ToCharArray());
dvander@388
    63
					string key, val = "";
dvander@388
    64
					if (s.GetLength(0) >= 1)
dvander@388
    65
					{
dvander@388
    66
						key = s[0];
dvander@388
    67
						if (s.GetLength(0) >= 2)
dvander@388
    68
						{
dvander@388
    69
							for (int i=1; i<s.GetLength(0); i++)
dvander@388
    70
							{
dvander@388
    71
								val += s[i];
dvander@388
    72
							}
dvander@388
    73
						}
dvander@388
    74
						key = key.Trim(delim.ToCharArray());
dvander@388
    75
						val = val.Trim(delim.ToCharArray());
dvander@388
    76
						if (key.CompareTo("SourceBase") == 0)
dvander@388
    77
						{
dvander@388
    78
							SourceBase = val;
dvander@388
    79
						} 
dvander@388
    80
						else if (key.CompareTo("OutputBase") == 0) 
dvander@388
    81
						{
dvander@388
    82
							OutputBase = val;
dvander@388
    83
						} 
dvander@388
    84
						else if (key.CompareTo("BuilderPath") == 0) 
dvander@388
    85
						{
dvander@388
    86
							BuilderPath = val;
dvander@388
    87
						} 
dvander@388
    88
						else if (key.CompareTo("CompressOptions") == 0) 
dvander@388
    89
						{
dvander@388
    90
							CompressOptions = val;
dvander@388
    91
						} 
dvander@388
    92
						else if (key.CompareTo("SVNVersion") == 0) 
dvander@388
    93
						{
dvander@388
    94
							SVNVersion = val;
dvander@388
    95
						} 
dvander@388
    96
						else if (key.CompareTo("ProductVersion") == 0)
dvander@388
    97
						{
dvander@388
    98
							ProductVersion = val;
dvander@403
    99
						} 
dvander@403
   100
						else if (key.CompareTo("Compressor") == 0) 
dvander@403
   101
						{
dvander@403
   102
							Compressor = val;
dvander@467
   103
						} 
dvander@467
   104
						else if (key.CompareTo("BuildOptions") == 0) 
dvander@467
   105
						{
dvander@467
   106
							BuildOptions = val;
dvander@388
   107
						}
dvander@388
   108
					}
dvander@388
   109
				}
dvander@388
   110
			} 
dvander@388
   111
			catch (System.Exception e)
dvander@388
   112
			{
dvander@388
   113
				Console.WriteLine("Unable to read {0:s}: {1:s}", file, e.Message);
dvander@388
   114
				read = false;
dvander@388
   115
			}
dvander@388
   116
dvander@388
   117
			if (sr != null)
dvander@388
   118
			{
dvander@388
   119
				sr.Close();
dvander@388
   120
			}
dvander@388
   121
dvander@388
   122
			return read;
dvander@388
   123
		}
dvander@388
   124
	}
dvander@388
   125
}