mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-02 21:34:15 +00:00
Restructured to be nicer example
Code restructured to better represent best practice when using libgit2.
This commit is contained in:
parent
9bff15f4a4
commit
785990bead
@ -23,10 +23,8 @@ static int run_command(git_cb fn, int argc, char **argv)
|
|||||||
int error;
|
int error;
|
||||||
git_repository *repo;
|
git_repository *repo;
|
||||||
|
|
||||||
git_libgit2_init();
|
// Before running the actual command, create an instance of the local
|
||||||
|
// repository and pass it to the function.
|
||||||
// Before running the actual command, create an instance of the local
|
|
||||||
// repository and pass it to the function.
|
|
||||||
|
|
||||||
error = git_repository_open(&repo, ".git");
|
error = git_repository_open(&repo, ".git");
|
||||||
if (error < 0)
|
if (error < 0)
|
||||||
@ -44,25 +42,32 @@ static int run_command(git_cb fn, int argc, char **argv)
|
|||||||
if(repo)
|
if(repo)
|
||||||
git_repository_free(repo);
|
git_repository_free(repo);
|
||||||
|
|
||||||
git_libgit2_shutdown();
|
|
||||||
|
|
||||||
return !!error;
|
return !!error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
int return_code = 1;
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
fprintf(stderr, "usage: %s <cmd> [repo]\n", argv[0]);
|
fprintf(stderr, "usage: %s <cmd> [repo]\n", argv[0]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
git_libgit2_init();
|
||||||
|
|
||||||
for (i = 0; commands[i].name != NULL; ++i) {
|
for (i = 0; commands[i].name != NULL; ++i) {
|
||||||
if (!strcmp(argv[1], commands[i].name))
|
if (!strcmp(argv[1], commands[i].name)) {
|
||||||
return run_command(commands[i].fn, --argc, ++argv);
|
return_code = run_command(commands[i].fn, --argc, ++argv);
|
||||||
|
goto shutdown;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "Command not found: %s\n", argv[1]);
|
fprintf(stderr, "Command not found: %s\n", argv[1]);
|
||||||
return 1;
|
|
||||||
|
shutdown:
|
||||||
|
git_libgit2_shutdown();
|
||||||
|
|
||||||
|
return return_code;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user