diff options
Diffstat (limited to 'examples/log.c')
| -rw-r--r-- | examples/log.c | 58 |
1 files changed, 58 insertions, 0 deletions
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 <stdio.h> +#include <git2.h> +#include <stdlib.h> +#include <string.h> + +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 [<options>]\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; +} |
