diff --git a/PROMS/AdjustBuildRevision/Program.cs b/PROMS/AdjustBuildRevision/Program.cs index a7192339..49793101 100644 --- a/PROMS/AdjustBuildRevision/Program.cs +++ b/PROMS/AdjustBuildRevision/Program.cs @@ -12,32 +12,88 @@ namespace AdjustBuildRevision static void Main(string[] args) { // args[0] - FileName - FileInfo fi = new FileInfo(args[0]); - if (fi.Exists) + try { - StreamReader sr = fi.OpenText(); - string content = sr.ReadToEnd(); - sr.Close(); - StreamWriter sw = fi.CreateText(); - string[] seps = { "\r\n" }; - string[] lines = content.Split(seps, StringSplitOptions.None); - foreach (string line in lines) + FileInfo fi = new FileInfo(args[0]); + DateTime dtLatest = GetLatestDateTime(fi.Directory.Parent,fi.LastWriteTime); + if (fi.Exists) { - string outline = line; - if (line.Contains("AssemblyVersion") || line.Contains("AssemblyFileVersion")) + StreamReader sr = fi.OpenText(); + string content = sr.ReadToEnd(); + sr.Close(); + string[] seps = { "\r\n" }; + string[] lines = content.Split(seps, StringSplitOptions.None); + bool changed = false; + for (int i = 0; i < lines.Length;i++ ) { - Console.WriteLine("Before: '{0}'", line); - outline = Regex.Replace(line,@"([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("yyMM.dHH")+"\")"); - Console.WriteLine("After: '{0}'", outline); + string line = lines[i]; + string outline = line; + if (line.Contains("AssemblyVersion") || line.Contains("AssemblyFileVersion")) + { + outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("1.1.yyMM.dHH") + "\")"); + if (outline != line) + { + Console.WriteLine("Before: '{0}'", line); + Console.WriteLine("After: '{0}'", outline); + lines[i] = outline; + changed = true; + } + else + { + Console.WriteLine("No change: '{0}'", line); + } + } + } + if (changed) + { + if (!fi.IsReadOnly) fi.IsReadOnly = false; + StreamWriter sw = fi.CreateText(); + foreach (string line in lines) + sw.WriteLine(line); + sw.Close(); } - sw.WriteLine(outline); } - sw.Close(); + else + { + MessageBox.Show("File " + fi.FullName + " does not exist"); + } } - else + catch (Exception ex) { - MessageBox.Show("File " + fi.FullName + " does not exist"); + MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } + + //private static DateTime GetLatestDateTime(string path) + //{ + // return GetLatestDateTime(new DirectoryInfo(path)); + //} + private static DateTime GetLatestDateTime(DirectoryInfo di, DateTime dtCheck) + { + DateTime dtMax = dtCheck; + FileInfo[] myFiles = di.GetFiles(); + foreach(FileInfo myFile in myFiles) + { + DateTime dt = myFile.LastWriteTime; + //if (dt > dtCheck) + //{ + //Console.WriteLine("\"File\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}",myFile.FullName,dt.ToString("1.1.yyMM.dHH"),dt,dtCheck); + if(dtMax < dt) dtMax = dt; + //} + } + DirectoryInfo[] myFolders = di.GetDirectories(); + foreach (DirectoryInfo diChild in myFolders) + { + DateTime dtChild = GetLatestDateTime(diChild,dtCheck); + //if (dtChild > dtCheck) + //{ + //Console.WriteLine("\"SubFolder\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", diChild.FullName, dtChild.ToString("1.1.yyMM.dHH"),dtChild,dtCheck); + if(dtChild > dtMax) dtMax = dtChild; + //} + } + //if(dtMax > dtCheck) + // Console.WriteLine("\"Folder\"\t\"{0}\"\t\"{1}\"", di.FullName, dtMax.ToString("1.1.yyMM.dHH")); + return dtMax; + } } }