Fileops: Added gitfo_isfile.

Conflicts:

	src/fileops.c
This commit is contained in:
Romain Geissler 2011-06-03 21:09:14 +02:00
parent 26a98ec8a2
commit bc6484912e
2 changed files with 21 additions and 1 deletions

View File

@ -131,7 +131,26 @@ int gitfo_isdir(const char *path)
return git__throw(GIT_ENOTFOUND, "%s does not exist", path);
if (!S_ISDIR(st.st_mode))
return git__throw(GIT_ENOTFOUND, "%s is a file", path);
return git__throw(GIT_ENOTFOUND, "%s is not a directory", path);
return GIT_SUCCESS;
}
int gitfo_isfile(const char *path)
{
struct stat st;
int stat_error;
if (!path)
return git__throw(GIT_ENOTFOUND, "No path given to gitfo_isfile");
stat_error = gitfo_stat(path, &st);
if (stat_error < GIT_SUCCESS)
return git__throw(GIT_ENOTFOUND, "%s does not exist", path);
if (!S_ISREG(st.st_mode))
return git__throw(GIT_ENOTFOUND, "%s is not a file", path);
return GIT_SUCCESS;
}

View File

@ -67,6 +67,7 @@ extern int gitfo_creat(const char *path, int mode);
extern int gitfo_creat_force(const char *path, int mode);
extern int gitfo_mktemp(char *path_out, const char *filename);
extern int gitfo_isdir(const char *path);
extern int gitfo_isfile(const char *path);
extern int gitfo_mkdir_recurs(const char *path, int mode);
extern int gitfo_mkdir_2file(const char *path);
#define gitfo_close(fd) close(fd)