using System.Diagnostics; using System.IO; using Pf2e.Scrapper.Helpers; namespace Pf2e.Scrapper.Importers.Repositories; /// /// Репозиторий, загружающий данные из GIT-источника. /// /// Импортёр, использующий репозиторий. /// Ссылка на GIT-репозиторий. internal class GitRepository(AbstractImporter importer, string url) : AbstractImporterRepository(importer) { /// /// Ссылка на GIT-репозиторий. /// public string Url { get; } = url; /// public override void Update(ProcessProgress progress) { progress.Local.Reset(1); if (Directory.Exists(RepositoryDirPath)) { progress.Local.Start("git pull"); Process process = new() { StartInfo = new() { FileName = "git", WorkingDirectory = RepositoryDirPath, Arguments = "pull", }, }; process.Start(); } else { progress.Local.Start("git clone"); Process process = new() { StartInfo = new() { FileName = "git", WorkingDirectory = EnvSettings.DataDirPath, Arguments = $"clone {Url} {Importer.Slug}", }, }; process.Start(); } progress.Local.Complete(); } }