From b53258182bf90b4fb922a20d164a02e6f0e9afd1 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 22 Jan 2010 07:38:03 -0800 Subject: [PATCH] make "git unpack-file" a built-in Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- Makefile | 2 +- unpack-file.c => builtin-unpack-file.c | 5 +---- builtin.h | 1 + git.c | 1 + 4 files changed, 4 insertions(+), 5 deletions(-) rename unpack-file.c => builtin-unpack-file.c (89%) diff --git a/Makefile b/Makefile index c5a1190ebe..88e2f8fd49 100644 --- a/Makefile +++ b/Makefile @@ -392,7 +392,6 @@ PROGRAMS += git-index-pack$X PROGRAMS += git-pack-redundant$X PROGRAMS += git-shell$X PROGRAMS += git-show-index$X -PROGRAMS += git-unpack-file$X PROGRAMS += git-upload-pack$X PROGRAMS += git-http-backend$X @@ -698,6 +697,7 @@ BUILTIN_OBJS += builtin-stripspace.o BUILTIN_OBJS += builtin-symbolic-ref.o BUILTIN_OBJS += builtin-tag.o BUILTIN_OBJS += builtin-tar-tree.o +BUILTIN_OBJS += builtin-unpack-file.o BUILTIN_OBJS += builtin-unpack-objects.o BUILTIN_OBJS += builtin-update-index.o BUILTIN_OBJS += builtin-update-ref.o diff --git a/unpack-file.c b/builtin-unpack-file.c similarity index 89% rename from unpack-file.c rename to builtin-unpack-file.c index e9d8934691..608590ada8 100644 --- a/unpack-file.c +++ b/builtin-unpack-file.c @@ -22,18 +22,15 @@ static char *create_temp_file(unsigned char *sha1) return path; } -int main(int argc, char **argv) +int cmd_unpack_file(int argc, const char **argv, const char *prefix) { unsigned char sha1[20]; - git_extract_argv0_path(argv[0]); - if (argc != 2 || !strcmp(argv[1], "-h")) usage("git unpack-file "); if (get_sha1(argv[1], sha1)) die("Not a valid object name %s", argv[1]); - setup_git_directory(); git_config(git_default_config, NULL); puts(create_temp_file(sha1)); diff --git a/builtin.h b/builtin.h index 2aaef74e02..d4fec89a15 100644 --- a/builtin.h +++ b/builtin.h @@ -103,6 +103,7 @@ extern int cmd_stripspace(int argc, const char **argv, const char *prefix); extern int cmd_symbolic_ref(int argc, const char **argv, const char *prefix); extern int cmd_tag(int argc, const char **argv, const char *prefix); extern int cmd_tar_tree(int argc, const char **argv, const char *prefix); +extern int cmd_unpack_file(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); diff --git a/git.c b/git.c index 0b8f8a731e..832bd2d535 100644 --- a/git.c +++ b/git.c @@ -370,6 +370,7 @@ static void handle_internal_command(int argc, const char **argv) { "symbolic-ref", cmd_symbolic_ref, RUN_SETUP }, { "tag", cmd_tag, RUN_SETUP }, { "tar-tree", cmd_tar_tree }, + { "unpack-file", cmd_unpack_file, RUN_SETUP }, { "unpack-objects", cmd_unpack_objects, RUN_SETUP }, { "update-index", cmd_update_index, RUN_SETUP }, { "update-ref", cmd_update_ref, RUN_SETUP }, -- 2.11.4.GIT