|
using System.IO;
using System;
namespace GenerateTimeStampFile
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1)
{
// Assume new file required
string fileName = null;
string nameSpace = "TimeStamp";
string[] TimestampFile = new string[]
{@"using System;",
@"// The namespace can be overidden by the /N option:",
@"// GenerateTimeStampFile file.cs /N:MyNameSpace",
@"// Such settings will override your value here.",
@"namespace TimeStamp",
@" {",
@" /// <summary>",
@" /// Static Timestamp related data.",
@" /// </summary>",
@" /// <remarks>",
@" /// THIS FILE IS CHANGED BY EXTERNAL PROGRAMS.",
@" /// Do not modify the namespace, as it may be overwritten. You can",
@" /// set the namespace with the /N option.",
@" /// Do not modify the definition of BuildAt as your changes will be discarded.",
@" /// Do not modify the definition of TimeStampedBy as your changes will be discarded.",
@" /// </remarks>",
@" public static class Timestamp",
@" {",
@" /// <summary>",
@" /// The time stamp",
@" /// </summary>",
@" /// <remarks>",
@" /// Do not modify the definition of BuildAt as your changes will be discarded.",
@" /// </remarks>",
@" public static DateTime BuildAt { get { return new DateTime(???); } } //--**",
@" /// <summary>",
@" /// The program that time stamped it.",
@" /// </summary>",
@" /// <remarks>",
@" /// Do not modify the definition of TimeStampedBy as your changes will be discarded.",
@" /// </remarks>",
@" public static string TimeStampedBy { get { return @""???""; } } //--**",
@" }",
@" }" };
for (int i = 1; i < args.Length; i++)
{
if (!args[i].StartsWith("/"))
{
// File name
fileName = args[i];
if (File.Exists(fileName))
{
TimestampFile = File.ReadAllLines(fileName);
}
}
else
{
// It's an option
if (args[i].StartsWith("/N:"))
{
// Set the namespace for the Timestamp class.
nameSpace = args[i].Substring(3);
}
}
}
if (!string.IsNullOrWhiteSpace(fileName))
{
// We have an output location.
// Replace the namespace and timestamp.
for (int i = 0; i < TimestampFile.Length; i++)
{
string line = TimestampFile[i].Trim();
if (line.StartsWith("namespace"))
{
TimestampFile[i] = "namespace " + nameSpace;
}
else if (line.EndsWith("//--**"))
{
// Special
if (line.Contains("DateTime BuildAt"))
{
TimestampFile[i] = @" public static DateTime BuildAt { get { return new DateTime(" +
DateTime.Now.Ticks.ToString() +
@"); } } //--**";
}
else if (line.Contains("string TimeStampedBy"))
{
TimestampFile[i] = @" public static string TimeStampedBy { get { return @""GenerateTimeStampFile V1.0""; } } //--**";
}
}
}
File.WriteAllLines(fileName, TimestampFile);
}
}
Environment.ExitCode = 0; //Set no error
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Born at an early age, he grew older. At the same time, his hair grew longer, and was tied up behind his head.
Has problems spelling the word "the".
Invented the portable cat-flap.
Currently, has not died yet. Or has he?