git

Форк
0
/
verify-tag.c 
69 строк · 1.7 Кб
1
/*
2
 * Builtin "git verify-tag"
3
 *
4
 * Copyright (c) 2007 Carlos Rica <jasampler@gmail.com>
5
 *
6
 * Based on git-verify-tag.sh
7
 */
8
#include "builtin.h"
9
#include "config.h"
10
#include "gettext.h"
11
#include "tag.h"
12
#include "object-name.h"
13
#include "parse-options.h"
14
#include "gpg-interface.h"
15
#include "ref-filter.h"
16

17
static const char * const verify_tag_usage[] = {
18
		N_("git verify-tag [-v | --verbose] [--format=<format>] [--raw] <tag>..."),
19
		NULL
20
};
21

22
int cmd_verify_tag(int argc, const char **argv, const char *prefix)
23
{
24
	int i = 1, verbose = 0, had_error = 0;
25
	unsigned flags = 0;
26
	struct ref_format format = REF_FORMAT_INIT;
27
	const struct option verify_tag_options[] = {
28
		OPT__VERBOSE(&verbose, N_("print tag contents")),
29
		OPT_BIT(0, "raw", &flags, N_("print raw gpg status output"), GPG_VERIFY_RAW),
30
		OPT_STRING(0, "format", &format.format, N_("format"), N_("format to use for the output")),
31
		OPT_END()
32
	};
33

34
	git_config(git_default_config, NULL);
35

36
	argc = parse_options(argc, argv, prefix, verify_tag_options,
37
			     verify_tag_usage, PARSE_OPT_KEEP_ARGV0);
38
	if (argc <= i)
39
		usage_with_options(verify_tag_usage, verify_tag_options);
40

41
	if (verbose)
42
		flags |= GPG_VERIFY_VERBOSE;
43

44
	if (format.format) {
45
		if (verify_ref_format(&format))
46
			usage_with_options(verify_tag_usage,
47
					   verify_tag_options);
48
		flags |= GPG_VERIFY_OMIT_STATUS;
49
	}
50

51
	while (i < argc) {
52
		struct object_id oid;
53
		const char *name = argv[i++];
54

55
		if (repo_get_oid(the_repository, name, &oid)) {
56
			had_error = !!error("tag '%s' not found.", name);
57
			continue;
58
		}
59

60
		if (gpg_verify_tag(&oid, name, flags)) {
61
			had_error = 1;
62
			continue;
63
		}
64

65
		if (format.format)
66
			pretty_print_ref(name, &oid, &format);
67
	}
68
	return had_error;
69
}
70

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.