mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
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:
parent
01f082a60f
commit
b804b9cdb8
7 changed files with 762 additions and 13 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue