private static void PurgeFileList() { Console.WriteLine("Reading configuration..."); VersionConfig versionConfig = new VersionConfig(); versionConfig.Parse(); Console.WriteLine("Purging non-existent files..."); for (int i = 0; i < versionConfig.FileEntries.Count; i++) { FileEntry entry = versionConfig.FileEntries[i]; if (!File.Exists(Environment.CurrentDirectory + Path.DirectorySeparatorChar + entry.FilePath)) { Console.WriteLine($"Removing non-existent file {entry.FilePath}"); versionConfig.FileEntries.RemoveAt(i); i--; } } versionConfig.Write(); Console.WriteLine(); Console.WriteLine("Configuration purging finished."); }
private static void GenerateBuild() { char dsc = Path.DirectorySeparatorChar; Console.WriteLine("Reading configuration..."); VersionConfig versionConfig = new VersionConfig(); versionConfig.Parse(); Console.WriteLine("Gathering list of outdated files in the build directory..."); List <FileEntry> filesToProcess = versionConfig.GetOutdatedFileList(); Directory.CreateDirectory(Environment.CurrentDirectory + dsc + versionConfig.BuildDirectory); foreach (FileEntry fileEntry in filesToProcess) { string filePath = Environment.CurrentDirectory + dsc + versionConfig.BuildDirectory + dsc + fileEntry.FilePath; string originalFilePath = Environment.CurrentDirectory + dsc + fileEntry.FilePath; if (!File.Exists(originalFilePath)) { Console.WriteLine($"Warning: file {fileEntry.FilePath} included in version configuration does not exist. Press ENTER to continue."); Console.ReadLine(); continue; } Directory.CreateDirectory(Path.GetDirectoryName(filePath)); if (!fileEntry.Compressed) { Console.WriteLine("Copying " + fileEntry.FilePath); File.Copy(originalFilePath, filePath, true); } else { Console.WriteLine("Compressing " + fileEntry.FilePath); CompressionHelper.CompressFile(originalFilePath, filePath + RemoteFileInfo.COMPRESSED_FILE_EXTENSION); } } Console.WriteLine("Generating new version files..."); if (incrementVersion) { versionConfig.InternalVersion++; } if (generateVersionFromDate) { versionConfig.GenerateVersionDisplayStringFromCurrentDate(); } versionConfig.WriteVersionFiles(); Console.WriteLine("Cleaning build directory from potential leftover files..."); versionConfig.CleanBuildDirectory(); Console.WriteLine("Refreshing version configuration..."); versionConfig.Write(); Console.WriteLine(); Console.WriteLine("List of modified files:"); Console.ForegroundColor = ConsoleColor.Green; foreach (FileEntry fileEntry in filesToProcess) { Console.WriteLine(fileEntry.FilePath); } }