コード例 #1
0
        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.");
        }
コード例 #2
0
        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);
            }
        }