diff options
-rw-r--r-- | src/host/os_copyfile.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/host/os_copyfile.c b/src/host/os_copyfile.c new file mode 100644 index 0000000..6ec0a46 --- /dev/null +++ b/src/host/os_copyfile.c @@ -0,0 +1,34 @@ +/** + * \file os_copyfile.c + * \brief Copy a file from one location to another. + * \author Copyright (c) 2002-2008 Jason Perkins and the Premake project + */ + +#include "premake.h" + + +int os_copyfile(lua_State* L) +{ + int z; + const char* src = luaL_checkstring(L, 1); + const char* dst = luaL_checkstring(L, 2); + +#if PLATFORM_WINDOWS + z = CopyFile(src, dst, FALSE); +#else + luaL_pushfstring(L, "cp %s %s", src, dst); + z = (system(lua_tostring(L, -1)) == 0); +#endif + + if (!z) + { + lua_pushnil(L); + lua_pushfstring(L, "unable to copy file to '%s'", dst); + return 2; + } + else + { + lua_pushboolean(L, 1); + return 1; + } +} |