Добавлена проверка на наличие установленного git в системе

This commit is contained in:
Alexander Zhirov 2025-05-26 03:09:15 +03:00
parent a7676d5886
commit cc85cdec78
Signed by: alexander
GPG key ID: C8D8BE544A27C511
2 changed files with 13 additions and 1 deletions

View file

@ -1,6 +1,7 @@
import snag;
import commandr;
import std.file;
import std.stdio : writeln;
import core.stdc.stdlib : EXIT_SUCCESS, EXIT_FAILURE;
@ -8,6 +9,11 @@ private string programName = "snag";
int main(string[] args)
{
if (!checkGit()) {
"Using snag requires Git to be installed".writeln;
return EXIT_FAILURE;
}
auto argumets = new Program(programName, snagVersion)
.add(new Command("init", "Initializing the repository for storing snapshots"))
.add(new Command("status", "Checking the status of tracked files"))
@ -83,7 +89,7 @@ int main(string[] args)
}
auto snag = new Snag(config);
import std.stdio;
try {
argumets
.on("init", init =>

View file

@ -1,6 +1,7 @@
module snag.lib.lib;
import std.regex;
import std.process;
bool isValidHash(string hash) {
auto hashPattern = ctRegex!r"^[a-fA-F0-9]{7}$";
@ -11,3 +12,8 @@ bool isValidEmail(string email) {
auto emailPattern = ctRegex!r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$";
return !matchFirst(email, emailPattern).empty;
}
bool checkGit() {
auto result = execute(["which", "git"]);
return !result.status;
}