fba952f0701f56e37bebc921a4bd5de1510f0c88
[mono.git] / msvc / scripts / prepare.cs
1 //
2 // C# implementation of a handful of shell steps
3 // this is used to automate the buidl in Windows
4 //
5 using System;
6 using System.Text;
7 using System.IO;
8
9 class Prepare {
10         delegate void filt (StreamReader sr, StreamWriter sw);
11         
12         static void Filter (string inpath, string outpath, filt filter)
13         {
14                 using (var ins = new StreamReader (inpath)){
15                         using (var outs = new StreamWriter (outpath)){
16                                 filter (ins, outs);
17                         }
18                 }
19         }
20         
21         static void Main (string [] args)
22         {
23                 string bdir = args.Length == 0 ? "../../../mcs" : args [0];
24
25                 if (!Directory.Exists (Path.Combine(bdir, "class"))){
26                         Console.Error.WriteLine ("The directory {0} does not contain class at {1}", Path.GetFullPath (bdir), Environment.CurrentDirectory);
27                         Environment.Exit (1);
28                 }
29
30                 switch (args [1]){
31                 case "core":
32                         Filter (bdir + "/build/common/Consts.cs.in",
33                                 bdir + "/build/common/Consts.cs",
34                                 (i, o) => o.Write (i.ReadToEnd ().Replace ("@MONO_VERSION@", "2.5.0")));
35                         break;
36                         
37                 default:
38                         Console.Error.WriteLine ("Unknonw option to prepare.exe {0}", args [1]);
39                         Environment.Exit (1);
40                         break;
41                 }
42         }
43         
44 }