Пример #1
0
        public void PerformUpdate(string fl, FileUpdateType fut)
        {
            string versonToWrite = cv.GetVersionString(cv.GetDisplayType(fut));

            Bilge.VerboseLog($"Perform update requested {versonToWrite} using {fut.ToString()}", fl);

            switch (fut)
            {
            case FileUpdateType.Assembly4:
            case FileUpdateType.Assembly2:
                UpdateCSFileWithAttribute(fl, ASMFILE_VER_TAG, versonToWrite);
                break;

            case FileUpdateType.AssemblyInformational:
                UpdateCSFileWithAttribute(fl, ASMFILE_INFVER_TAG, versonToWrite);
                break;

            case FileUpdateType.AssemblyFile:
                UpdateCSFileWithAttribute(fl, ASMFILE_FILEVER_TAG, versonToWrite);
                break;

            case FileUpdateType.Wix:
                Bilge.Log("Wix Updates NOT SUPPORTED");
                break;

            default:
                break;
            }
        }
Пример #2
0
 public DisplayType GetDisplayType(FileUpdateType fut, DisplayType dt = DisplayType.Default)
 {
     if (dt != DisplayType.Default)
     {
         return(dt);
     }
     return(DisplayTypes[fut]);
 }
Пример #3
0
 public void SetMiniMatches(FileUpdateType target, params string[] versionTargetMinMatch)
 {
     if (!fileUpdateMinmatchers.ContainsKey(target))
     {
         fileUpdateMinmatchers.Add(target, new List <string>());
     }
     fileUpdateMinmatchers[target].AddRange(versionTargetMinMatch);
 }
Пример #4
0
 public void AddUpdateType(string minmatchPattern, FileUpdateType updateToPerform)
 {
     b.Verbose.Log("Adding Update Type " + minmatchPattern);
     if (!pendingUpdates.ContainsKey(minmatchPattern))
     {
         pendingUpdates.Add(minmatchPattern, new List <FileUpdateType>());
     }
     pendingUpdates[minmatchPattern].Add(updateToPerform);
 }
Пример #5
0
        private static int ValidateFileUpdateType(FileUpdateType fut)
        {
            int fai = (int)fut;

#if DEBUG
            if (fai < 0 || fai > NUMBERDISPLAYTYPES - 1)
            {
                throw new ArgumentOutOfRangeException("fut", $"The value {fut},{fai} for fut does not map to a known type.");
            }
#endif
            return(fai);
        }
Пример #6
0
        public void PerformUpdate(string fl, FileUpdateType fut, DisplayType dt = DisplayType.Default)
        {
            b.Verbose.Log("Perform update requested " + fut.ToString(), fl);
            if (!File.Exists(fl))
            {
                throw new FileNotFoundException($"Filename must be present for version update {fl}");
            }

            var    dtx           = cv.GetDisplayType(fut, dt);
            string versonToWrite = cv.GetVersionString(dtx);

            switch (fut)
            {
            case FileUpdateType.NetAssembly:
                UpdateCSFileWithAttribute(fl, ASMFILE_VER_TAG, versonToWrite);
                break;

            case FileUpdateType.NetInformational:
                UpdateCSFileWithAttribute(fl, ASMFILE_INFVER_TAG, versonToWrite);
                break;

            case FileUpdateType.NetFile:
                UpdateCSFileWithAttribute(fl, ASMFILE_FILEVER_TAG, versonToWrite);
                break;

            case FileUpdateType.Wix:
                UpdateWixFile(fl, versonToWrite);
                break;

            case FileUpdateType.Nuspec:
                UpdateNuspecFile(fl, versonToWrite);
                break;

            case FileUpdateType.StdAssembly:
                UpdateStdCSPRoj(fl, versonToWrite, ASM_STD_ASMVTAG);
                break;

            case FileUpdateType.StdFile:
                UpdateStdCSPRoj(fl, versonToWrite, ASM_STD_FILETAG);
                break;

            case FileUpdateType.StdInformational:
                UpdateStdCSPRoj(fl, versonToWrite, ASM_STD_VERSTAG);
                break;

            case FileUpdateType.TextFile:
                UpdateLiteralReplacer(fl, cv, dtx);
                break;

            default:
                throw new NotImplementedException("The file type requested does not have a way to update files currently.");
            }
        }
Пример #7
0
        public DisplayType GetDisplayType(FileUpdateType fut)
        {
            int fai = ValidateFileUpdateType(fut);

/*
 *          Bilge.Log($"{0} >> {displayTypes[0]} >> {displayTypes[(int)FileUpdateType.Assembly4]}");
 *          Bilge.Log($"{1} >> {displayTypes[1]} >> {displayTypes[(int)FileUpdateType.AssemblyInformational]}");
 *          Bilge.Log($"{2} >> {displayTypes[2]} >> {displayTypes[(int)FileUpdateType.AssemblyFile]}");
 *          Bilge.Log($"{3} >> {displayTypes[3]} >> {displayTypes[(int)FileUpdateType.Wix]}");
 *          Bilge.Log($"{4} >> {displayTypes[4]} >> {displayTypes[(int)FileUpdateType.Assembly2]}");
 *          Bilge.Log("Done");
 *          Bilge.Log($"Getting {fai}");
 */
            return(displayTypes[fai]);
        }
Пример #8
0
 public void SetAllVersioningItems(string verItemsSimple)
 {
     b.Info.Log("SetAllVersioningITems");
     if (verItemsSimple.Contains(Environment.NewLine))
     {
         // The TFS build agent uses \n not Environment.Newline for its line separator, however unit tests use Environment.Newline
         // so replacing them with \n to make the two consistant.
         verItemsSimple = verItemsSimple.Replace(Environment.NewLine, "\n");
     }
     string[] allLines = verItemsSimple.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
     foreach (var ln in allLines)
     {
         string[] parts = ln.Split('!');
         if (parts.Length != 2)
         {
             throw new InvalidOperationException($"The versioning item string was in the wrong format [{ln}] ");
         }
         FileUpdateType ft = GetFileTypeFromString(parts[1]);
         AddUpdateType(parts[0], ft);
     }
 }
Пример #9
0
        public string GetVersion(FileUpdateType fut, string srcFile)
        {
            switch (fut)
            {
            case FileUpdateType.Nuspec: return(GetVersionFromNuspec(srcFile));

            case FileUpdateType.StdAssembly: return(GetVersionFromCSProj(srcFile, "AssemblyVersion"));

            case FileUpdateType.StdInformational: return(GetVersionFromCSProj(srcFile, "Version"));

            case FileUpdateType.StdFile: return(GetVersionFromCSProj(srcFile, "FileVersion"));
            }
            // case FileUpdateType.Wix:
            //        break;
            //default:
            //        break;
            //        case FileUpdateType.Assembly:
            //    break;
            //case FileUpdateType.AssemblyInformational:
            //    break;
            //case FileUpdateType.AssemblyFile:
            //    break;
            throw new NotImplementedException();
        }
Пример #10
0
        public void SetDisplayTypeForVersion(FileUpdateType fut, DisplayType dt)
        {
            int vfut = ValidateFileUpdateType(fut);

            displayTypes[vfut] = dt;
        }
Пример #11
0
 public void SetDisplayTypeForVersion(FileUpdateType fut, DisplayType dt)
 {
     DisplayTypes[fut] = dt;
 }
Пример #12
0
 public RestoredFileData(String sourcePath, String path, Int64 size, FileUpdateType updateType) : base(path, size)
 {
     SourcePath = sourcePath;
     UpdateType = updateType;
 }