mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 13:42:47 +00:00
Scripting: 'isdir' & 'exist' commands
This commit is contained in:
parent
387ff483fb
commit
239faede0f
@ -99,6 +99,8 @@ typedef enum {
|
|||||||
CMD_ID_ENCRYPT,
|
CMD_ID_ENCRYPT,
|
||||||
CMD_ID_BUILDCIA,
|
CMD_ID_BUILDCIA,
|
||||||
CMD_ID_EXTRCODE,
|
CMD_ID_EXTRCODE,
|
||||||
|
CMD_ID_ISDIR,
|
||||||
|
CMD_ID_EXIST,
|
||||||
CMD_ID_BOOT,
|
CMD_ID_BOOT,
|
||||||
CMD_ID_SWITCHSD,
|
CMD_ID_SWITCHSD,
|
||||||
CMD_ID_REBOOT,
|
CMD_ID_REBOOT,
|
||||||
@ -159,6 +161,8 @@ Gm9ScriptCmd cmd_list[] = {
|
|||||||
{ CMD_ID_ENCRYPT , "encrypt" , 1, 0 },
|
{ CMD_ID_ENCRYPT , "encrypt" , 1, 0 },
|
||||||
{ CMD_ID_BUILDCIA, "buildcia", 1, _FLG('l') },
|
{ CMD_ID_BUILDCIA, "buildcia", 1, _FLG('l') },
|
||||||
{ CMD_ID_EXTRCODE, "extrcode", 2, 0 },
|
{ CMD_ID_EXTRCODE, "extrcode", 2, 0 },
|
||||||
|
{ CMD_ID_ISDIR, "isdir" , 1, 0 },
|
||||||
|
{ CMD_ID_EXIST, "exist" , 1, 0 },
|
||||||
{ CMD_ID_BOOT , "boot" , 1, 0 },
|
{ CMD_ID_BOOT , "boot" , 1, 0 },
|
||||||
{ CMD_ID_SWITCHSD, "switchsd", 1, 0 },
|
{ CMD_ID_SWITCHSD, "switchsd", 1, 0 },
|
||||||
{ CMD_ID_REBOOT , "reboot" , 0, 0 },
|
{ CMD_ID_REBOOT , "reboot" , 0, 0 },
|
||||||
@ -1063,6 +1067,24 @@ bool run_cmd(cmd_id id, u32 flags, char** argv, char* err_str) {
|
|||||||
if (err_str) snprintf(err_str, _ERR_STR_LEN, "extract .code failed");
|
if (err_str) snprintf(err_str, _ERR_STR_LEN, "extract .code failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (id == CMD_ID_ISDIR) {
|
||||||
|
DIR fdir;
|
||||||
|
if (fvx_opendir(&fdir, argv[0]) == FR_OK) {
|
||||||
|
fvx_closedir(&fdir);
|
||||||
|
ret = true;
|
||||||
|
} else {
|
||||||
|
if (err_str) snprintf(err_str, _ERR_STR_LEN, "not a dir");
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (id == CMD_ID_EXIST) {
|
||||||
|
if (fvx_stat(argv[0], NULL) == FR_OK) {
|
||||||
|
ret = true;
|
||||||
|
} else {
|
||||||
|
if (err_str) snprintf(err_str, _ERR_STR_LEN, "file not found");
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (id == CMD_ID_BOOT) {
|
else if (id == CMD_ID_BOOT) {
|
||||||
size_t firm_size = FileGetData(argv[0], TEMP_BUFFER, TEMP_BUFFER_SIZE, 0);
|
size_t firm_size = FileGetData(argv[0], TEMP_BUFFER, TEMP_BUFFER_SIZE, 0);
|
||||||
ret = firm_size && IsBootableFirm(TEMP_BUFFER, firm_size);
|
ret = firm_size && IsBootableFirm(TEMP_BUFFER, firm_size);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user