update-server-info: make builtin, use parseopt

Convert git update-server-info to a built-in command and use parseopt.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2009-08-29 11:04:52 +02:00 коммит произвёл Junio C Hamano
Родитель d17982f19c
Коммит 53a1116c61
5 изменённых файлов: 28 добавлений и 29 удалений

Просмотреть файл

@ -357,7 +357,6 @@ PROGRAMS += git-patch-id$X
PROGRAMS += git-shell$X
PROGRAMS += git-show-index$X
PROGRAMS += git-unpack-file$X
PROGRAMS += git-update-server-info$X
PROGRAMS += git-upload-pack$X
PROGRAMS += git-var$X
@ -636,6 +635,7 @@ BUILTIN_OBJS += builtin-tar-tree.o
BUILTIN_OBJS += builtin-unpack-objects.o
BUILTIN_OBJS += builtin-update-index.o
BUILTIN_OBJS += builtin-update-ref.o
BUILTIN_OBJS += builtin-update-server-info.o
BUILTIN_OBJS += builtin-upload-archive.o
BUILTIN_OBJS += builtin-verify-pack.o
BUILTIN_OBJS += builtin-verify-tag.o

Просмотреть файл

@ -0,0 +1,25 @@
#include "cache.h"
#include "builtin.h"
#include "parse-options.h"
static const char * const update_server_info_usage[] = {
"git update-server-info [--force]",
NULL
};
int cmd_update_server_info(int argc, const char **argv, const char *prefix)
{
int force = 0;
struct option options[] = {
OPT_BOOLEAN('f', "force", &force,
"update the info files from scratch"),
OPT_END()
};
argc = parse_options(argc, argv, prefix, options,
update_server_info_usage, 0);
if (argc > 0)
usage_with_options(update_server_info_usage, options);
return !!update_server_info(force);
}

Просмотреть файл

@ -102,6 +102,7 @@ extern int cmd_tar_tree(int argc, const char **argv, const char *prefix);
extern int cmd_unpack_objects(int argc, const char **argv, const char *prefix);
extern int cmd_update_index(int argc, const char **argv, const char *prefix);
extern int cmd_update_ref(int argc, const char **argv, const char *prefix);
extern int cmd_update_server_info(int argc, const char **argv, const char *prefix);
extern int cmd_upload_archive(int argc, const char **argv, const char *prefix);
extern int cmd_upload_tar(int argc, const char **argv, const char *prefix);
extern int cmd_verify_tag(int argc, const char **argv, const char *prefix);

1
git.c
Просмотреть файл

@ -359,6 +359,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP },
{ "update-index", cmd_update_index, RUN_SETUP },
{ "update-ref", cmd_update_ref, RUN_SETUP },
{ "update-server-info", cmd_update_server_info, RUN_SETUP },
{ "upload-archive", cmd_upload_archive },
{ "verify-tag", cmd_verify_tag, RUN_SETUP },
{ "version", cmd_version },

Просмотреть файл

@ -1,28 +0,0 @@
#include "cache.h"
#include "exec_cmd.h"
static const char update_server_info_usage[] =
"git update-server-info [--force]";
int main(int ac, char **av)
{
int i;
int force = 0;
for (i = 1; i < ac; i++) {
if (av[i][0] == '-') {
if (!strcmp("--force", av[i]) ||
!strcmp("-f", av[i]))
force = 1;
else
usage(update_server_info_usage);
}
}
if (i != ac)
usage(update_server_info_usage);
git_extract_argv0_path(av[0]);
setup_git_directory();
return !!update_server_info(force);
}