From d39fff36484e908438beb17ee043689962182460 Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Sun, 23 Jun 2013 20:33:57 -0700 Subject: [PATCH] Basic framework for log command --- examples/Makefile | 2 +- examples/log.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 examples/log.c diff --git a/examples/Makefile b/examples/Makefile index 140cc4da9..6288906df 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -3,7 +3,7 @@ CC = gcc CFLAGS = -g -I../include -I../src -Wall -Wextra -Wmissing-prototypes -Wno-missing-field-initializers LFLAGS = -L../build -lgit2 -lz -APPS = general showindex diff rev-list cat-file status +APPS = general showindex diff rev-list cat-file status log all: $(APPS) diff --git a/examples/log.c b/examples/log.c new file mode 100644 index 000000000..f92b66996 --- /dev/null +++ b/examples/log.c @@ -0,0 +1,58 @@ +#include +#include +#include +#include + +static void check(int error, const char *message) +{ + if (error) { + fprintf(stderr, "%s (%d)\n", message, error); + exit(1); + } +} + +static int check_str_param(const char *arg, const char *pat, const char **val) +{ + size_t len = strlen(pat); + if (strncmp(arg, pat, len)) + return 0; + *val = (const char *)(arg + len); + return 1; +} + +static void usage(const char *message, const char *arg) +{ + if (message && arg) + fprintf(stderr, "%s: %s\n", message, arg); + else if (message) + fprintf(stderr, "%s\n", message); + fprintf(stderr, "usage: log []\n"); + exit(1); +} + +int main(int argc, char *argv[]) +{ + int i; + char *a; + const char *dir = "."; + git_repository *repo; + + git_threads_init(); + + for (i = 1; i < argc; ++i) { + a = argv[i]; + + if (a[0] != '-') { + } + else if (!check_str_param(a, "--git-dir=", &dir)) + usage("Unknown argument", a); + } + + check(git_repository_open_ext(&repo, dir, 0, NULL), + "Could not open repository"); + + git_repository_free(repo); + git_threads_shutdown(); + + return 0; +}