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