blob: fb5e8bb57ecc59959529881b29598832eba605b5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/**
* \file os_isdir.c
* \brief Returns true if the specified directory exists.
* \author Copyright (c) 2002-2008 Jason Perkins and the Premake project
*/
#include <string.h>
#include <sys/stat.h>
#include "premake.h"
int os_isdir(lua_State* L)
{
struct stat buf;
const char* path = luaL_checkstring(L, 1);
/* empty path is equivalent to ".", must be true */
if (strlen(path) == 0)
{
lua_pushboolean(L, 1);
}
else if (stat(path, &buf) == 0)
{
lua_pushboolean(L, buf.st_mode & S_IFDIR);
}
else
{
lua_pushboolean(L, 0);
}
return 1;
}
|