using System.Diagnostics;
using System.IO;
using Pf2e.Scrapper.Helpers;
namespace Pf2e.Scrapper.Importers.Repositories;
///
/// Репозиторий, загружающий данные из GIT-источника.
///
/// Импортёр, использующий репозиторий.
/// Ссылка на GIT-репозиторий.
public 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();
}
}