mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
[PATCH] init-db.c: create and use safe_create_dir helper
Factor mkdir calls into common safe_create_dir subroutine. Signed-Off-By: Zach Welch <zw@superlucidity.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
addb315d34
commit
cb126d8d79
30
init-db.c
30
init-db.c
|
@ -5,6 +5,16 @@
|
||||||
*/
|
*/
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
|
||||||
|
void safe_create_dir(char *dir)
|
||||||
|
{
|
||||||
|
if (mkdir(dir, 0755) < 0) {
|
||||||
|
if (errno != EEXIST) {
|
||||||
|
perror(dir);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If you want to, you can share the DB area with any number of branches.
|
* If you want to, you can share the DB area with any number of branches.
|
||||||
* That has advantages: you can save space by sharing all the SHA1 objects.
|
* That has advantages: you can save space by sharing all the SHA1 objects.
|
||||||
|
@ -16,10 +26,7 @@ int main(int argc, char **argv)
|
||||||
char *sha1_dir, *path;
|
char *sha1_dir, *path;
|
||||||
int len, i;
|
int len, i;
|
||||||
|
|
||||||
if (mkdir(".git", 0755) < 0) {
|
safe_create_dir(".git");
|
||||||
perror("unable to create .git directory");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
sha1_dir = getenv(DB_ENVIRONMENT);
|
sha1_dir = getenv(DB_ENVIRONMENT);
|
||||||
if (!sha1_dir) {
|
if (!sha1_dir) {
|
||||||
|
@ -27,22 +34,13 @@ int main(int argc, char **argv)
|
||||||
fprintf(stderr, "defaulting to local storage area\n");
|
fprintf(stderr, "defaulting to local storage area\n");
|
||||||
}
|
}
|
||||||
len = strlen(sha1_dir);
|
len = strlen(sha1_dir);
|
||||||
if (mkdir(sha1_dir, 0755) < 0) {
|
|
||||||
if (errno != EEXIST) {
|
|
||||||
perror(sha1_dir);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
path = malloc(len + 40);
|
path = malloc(len + 40);
|
||||||
memcpy(path, sha1_dir, len);
|
memcpy(path, sha1_dir, len);
|
||||||
|
|
||||||
|
safe_create_dir(sha1_dir);
|
||||||
for (i = 0; i < 256; i++) {
|
for (i = 0; i < 256; i++) {
|
||||||
sprintf(path+len, "/%02x", i);
|
sprintf(path+len, "/%02x", i);
|
||||||
if (mkdir(path, 0755) < 0) {
|
safe_create_dir(path);
|
||||||
if (errno != EEXIST) {
|
|
||||||
perror(path);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue