/
vasiukoff
/
sg
Обзор
Документация
Войти
/
vasiukoff
/
sg
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Commands/Tag.cs
59 строк
2 KB
leo
code_style: move class extensions to `App.Extensions.cs` to use these extensions anywhere
11 июл 2025, 13:00
11 июл 2025, 13:00
6ae8c7c
Код
Авторство
О чём код?
using System.IO; using System.Text; using System.Threading.Tasks; namespace SourceGit.Commands { public class Tag : Command { public Tag(string repo, string name) { WorkingDirectory = repo; Context = repo; _name = name; } public async Task<bool> AddAsync(string basedOn) { Args = $"tag --no-sign {_name} {basedOn}"; return await ExecAsync().ConfigureAwait(false); } public async Task<bool> AddAsync(string basedOn, string message, bool sign) { var builder = new StringBuilder(); builder .Append("tag ") .Append(sign ? "--sign -a " : "--no-sign -a ") .Append(_name) .Append(' ') .Append(basedOn); if (!string.IsNullOrEmpty(message)) { string tmp = Path.GetTempFileName(); await File.WriteAllTextAsync(tmp, message); builder.Append(" -F ").Append(tmp.Quoted()); Args = builder.ToString(); var succ = await ExecAsync().ConfigureAwait(false); File.Delete(tmp); return succ; } builder.Append(" -m "); builder.Append(_name); Args = builder.ToString(); return await ExecAsync().ConfigureAwait(false); } public async Task<bool> DeleteAsync() { Args = $"tag --delete {_name}"; return await ExecAsync().ConfigureAwait(false); } private readonly string _name; } }