sourcemod/tools/builder/Config.cs
David Anderson 7a8d164b25 Added compression support
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40409
2007-01-28 04:19:46 +00:00

121 lines
2.5 KiB
C#

using System;
using System.IO;
using System.Text;
namespace builder
{
public enum BasePlatform
{
Platform_Windows,
Platform_Linux
};
public class Config
{
public string SourceBase;
public string OutputBase;
public string BuilderPath;
public string CompressOptions;
public string SVNVersion;
public string ProductVersion;
public string Compressor;
public builder.BasePlatform Platform;
public Config()
{
if ((int)System.Environment.OSVersion.Platform == 128)
{
Platform = BasePlatform.Platform_Linux;
}
else
{
Platform = BasePlatform.Platform_Windows;
}
}
public static string PathFormat(string format, params string [] args)
{
string temp = string.Format(format, args);
return temp.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
}
public bool ReadFromFile(string file)
{
bool read = true;
StreamReader sr = null;
try
{
sr = new StreamReader(file);
string line;
string delim = "\t \n\r\v";
string split = "=";
while ( (line = sr.ReadLine()) != null )
{
line = line.Trim(delim.ToCharArray());
if (line.Length < 1 || line[0] == ';')
{
continue;
}
string [] s = line.Split(split.ToCharArray());
string key, val = "";
if (s.GetLength(0) >= 1)
{
key = s[0];
if (s.GetLength(0) >= 2)
{
for (int i=1; i<s.GetLength(0); i++)
{
val += s[i];
}
}
key = key.Trim(delim.ToCharArray());
val = val.Trim(delim.ToCharArray());
if (key.CompareTo("SourceBase") == 0)
{
SourceBase = val;
}
else if (key.CompareTo("OutputBase") == 0)
{
OutputBase = val;
}
else if (key.CompareTo("BuilderPath") == 0)
{
BuilderPath = val;
}
else if (key.CompareTo("CompressOptions") == 0)
{
CompressOptions = val;
}
else if (key.CompareTo("SVNVersion") == 0)
{
SVNVersion = val;
}
else if (key.CompareTo("ProductVersion") == 0)
{
ProductVersion = val;
}
else if (key.CompareTo("Compressor") == 0)
{
Compressor = val;
}
}
}
}
catch (System.Exception e)
{
Console.WriteLine("Unable to read {0:s}: {1:s}", file, e.Message);
read = false;
}
if (sr != null)
{
sr.Close();
}
return read;
}
}
}