Exemplo n.º 1
0
        public void Sync(string fromDir, string toDir, params string[] patterns)
        {
            Console.WriteLine("");
            Console.WriteLine("Synchronising files...");
            Console.WriteLine("");

            Console.WriteLine("From:");
            Console.WriteLine(fromDir);

            Console.WriteLine("To:");
            Console.WriteLine(toDir);
            Console.WriteLine("");

            var totalSynced  = 0;
            var totalSkipped = 0;
            var totalDeleted = 0;

            foreach (var file in Finder.FindFiles(fromDir, patterns))
            {
                var toFile = file.Replace(fromDir, toDir);

                DirectoryChecker.EnsureDirectoryExists(Path.GetDirectoryName(toFile));

                if (!File.Exists(toFile))
                {
                    Console.WriteLine(toFile.Replace(toDir, ""));

                    File.Copy(file, toFile);

                    totalSynced++;
                }
                else if (File.GetLastWriteTime(file) > File.GetLastWriteTime(toFile))
                {
                    Console.WriteLine(toFile.Replace(toDir, ""));

                    FileBackup.Backup(toFile);

                    File.Copy(file, toFile, true);

                    totalSynced++;
                }
                else
                {
                    Console.WriteLine("Skipping: " + toFile.Replace(toDir, ""));

                    totalSkipped++;
                }
            }

            Console.WriteLine("");
            Console.WriteLine("Total synced: " + totalSynced);
            Console.WriteLine("Total skipped: " + totalSkipped);
            Console.WriteLine("Total deleted: " + totalDeleted);
            Console.WriteLine("");
            Console.WriteLine("Sync finished!");

            // TODO: Add the ability to delete obsolete files
        }
Exemplo n.º 2
0
        public void Download(string url, string toFile, bool overwriteFile)
        {
            if (
                !File.Exists(toFile) ||
                overwriteFile
                )
            {
                if (Path.GetFullPath(toFile) != toFile)
                {
                    toFile = Path.GetFullPath(toFile);
                }

                Console.WriteLine("Downloading:");
                Console.WriteLine("  " + url);
                Console.WriteLine("To:");
                Console.WriteLine("  " + toFile);

                WebClient webClient = new WebClient();

                webClient.Headers.Add("USER-AGENT", "csAnt");

                webClient.Credentials = CredentialCache.DefaultCredentials;

                Console.WriteLine("  Please wait...(this may take some time)...");

                DirectoryChecker.EnsureDirectoryExists(Path.GetDirectoryName(toFile));

                webClient.DownloadFile(
                    url,
                    toFile
                    );

                OutputSize(webClient);

                Console.WriteLine("Download complete.");
                Console.WriteLine("");
            }
        }
Exemplo n.º 3
0
        public void ReplaceIn(string workingDir, string[] filePatterns, string textToFind, string replacementText, bool commit)
        {
            var patterns = new List <string>();

            patterns.AddRange(filePatterns);
            patterns.AddRange(ExcludePatterns);

            string[] files = Finder.FindFiles(workingDir, patterns.ToArray());

            Console.WriteLine("Performing (" + (commit ? "real" : "mock") + ") replace of the following text...");
            Console.WriteLine("From:");
            Console.WriteLine("  " + textToFind);
            Console.WriteLine("To:");
            Console.WriteLine("  " + replacementText);

            var totalChanges = 0;
            var totalSkipped = 0;

            foreach (string file in files)
            {
                if (IsSupportedFile(file))
                {
                    string content = String.Empty;

                    try
                    {
                        content = OpenFile(file);
                    }
                    catch
                    {
                        Console.WriteLine("Can't load: " + file);
                    }

                    // Check file text
                    if (!String.IsNullOrEmpty(content) &&
                        content.Contains(textToFind))
                    {
                        Console.WriteLine("Text found in file: " + PathConverter.ToRelative(file));
                        if (commit)
                        {
                            content = content.Replace(textToFind, replacementText);
                            SaveFile(file, content);
                            Console.WriteLine("Text replaced. File updated.");
                            totalChanges++;
                        }
                        else
                        {
                            totalSkipped++;
                        }
                    }
                }

                // Check file name
                if (file.Contains(textToFind))
                {
                    Console.WriteLine("Text found in file name: " + PathConverter.ToRelative(file));
                    if (commit)
                    {
                        var newFileName = file.Replace(textToFind, replacementText);

                        DirectoryChecker.EnsureDirectoryExists(Path.GetDirectoryName(newFileName));

                        try
                        {
                            Git.Move(file, newFileName);
                            Console.WriteLine("Renamed (git move)");
                        }
                        catch
                        {
                            File.Move(file, newFileName);
                            Console.WriteLine("Renamed (direct file move/rename)");
                        }
                        totalChanges++;
                    }
                    else
                    {
                        totalSkipped++;
                    }
                }
            }

            Console.WriteLine("");
            Console.WriteLine("Total changes: " + totalChanges);
            Console.WriteLine("Total skipped: " + totalSkipped);
            Console.WriteLine("");
            if (!commit)
            {
                Console.WriteLine("The replacement wasn't committed.");
            }
            Console.WriteLine("");
            Console.WriteLine("Replacement complete!");
            Console.WriteLine("");
        }