ADD: @pivipw 's changes "making lua paths".

ref:: 4197a3f6ff

This contains a ugly hardcoded hack to solve the issue: https://github.com/Proxmark/proxmark3/issues/217
where GetModuleHandleEx doesn't exist in mingw (old proxspace 2013 environment).

Use the docker container or linux...
This commit is contained in:
iceman1001 2017-02-24 14:59:38 +01:00
commit b804b9cdb8
7 changed files with 762 additions and 13 deletions

View file

@ -30,7 +30,6 @@
#include <lualib.h>
#include <lauxlib.h>
static int CmdHelp(const char *Cmd);
static int CmdList(const char *Cmd);
static int CmdRun(const char *Cmd);
@ -64,7 +63,7 @@ int str_ends_with(const char * str, const char * suffix) {
*/
int CmdHelp(const char * Cmd)
{
PrintAndLog("This is a feature to run Lua-scripts. You can place lua-scripts within the ´client/scripts/´ folder.");
PrintAndLog("This is a feature to run Lua-scripts. You can place lua-scripts within the scripts/-folder. ");
return 0;
}
@ -76,19 +75,24 @@ int CmdHelp(const char * Cmd)
*/
int CmdList(const char *Cmd)
{
DIR *dp;
struct dirent *ep;
DIR *dp = opendir ("./scripts/");
if ( dp == NULL ) {
PrintAndLog ("Couldn't open the scripts-directory");
return 1;
}
char script_directory_path[strlen(get_my_executable_directory()) + strlen(LUA_SCRIPTS_DIRECTORY) + 1];
strcpy(script_directory_path, get_my_executable_directory());
strcat(script_directory_path, LUA_SCRIPTS_DIRECTORY);
dp = opendir(script_directory_path);
if (dp != NULL)
{
while ((ep = readdir (dp)) != NULL)
{
if(str_ends_with(ep->d_name, ".lua"))
PrintAndLog("%-21s %s", ep->d_name, "A script file");
}
(void) closedir (dp);
}
else
PrintAndLog ("Couldn't open the scripts-directory");
return 0;
}
@ -150,14 +154,19 @@ int CmdRun(const char *Cmd)
suffix = ".lua";
}
char buf[256];
snprintf(buf, sizeof buf, "./scripts/%s%s", script_name, suffix);
char script_path[strlen(get_my_executable_directory()) + strlen(LUA_SCRIPTS_DIRECTORY) + strlen(script_name) + strlen(suffix) + 1];
strcpy(script_path, get_my_executable_directory());
strcat(script_path, LUA_SCRIPTS_DIRECTORY);
strcat(script_path, script_name);
strcat(script_path, suffix);
printf("--- Executing: %s%s, args '%s'\n", script_name, suffix, arguments);
printf("--- Executing: %s, args'%s'\n", buf, arguments);
// run the Lua script
int error = luaL_loadfile(lua_state, buf);
int error = luaL_loadfile(lua_state, script_path);
if(!error)
{
lua_pushstring(lua_state, arguments);