ArrayList LoadResponseFile(string file)
{
file = Path.GetFullPath(file);
if (_responseFileList.Contains(file))
{
throw new ApplicationException(
Boo.Lang.ResourceManager.Format("BCE0500", file));
}
_responseFileList.Add(file);
if (!File.Exists(file))
{
throw new ApplicationException(Boo.Lang.ResourceManager.Format("BCE0501", file));
}
ArrayList arglist = new ArrayList();
try
{
using (StreamReader sr = new StreamReader(file))
{
string line;
while ((line = sr.ReadLine()) != null)
{
line = line.Trim();
if (line.Length > 0 && line[0] != '#')
{
if (line.StartsWith("@") && line.Length > 2)
{
arglist.AddRange(LoadResponseFile(line.Substring(1)));
}
else
{
arglist.Add(line);
}
}
}
}
}
catch (ApplicationException)
{
throw;
}
catch (Exception x)
{
throw new ApplicationException(
Boo.Lang.ResourceManager.Format("BCE0502", file),
x);
}
return arglist;
}