| 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-- |
| 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 |
} |