summaryrefslogtreecommitdiff
path: root/lib/utils/pyexec.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2019-04-26 15:21:09 +1000
committerDamien George <damien.p.george@gmail.com>2019-04-26 15:21:09 +1000
commit06a532c227c2f37fc190deb84970fdfeaaf37d6a (patch)
tree69fb415403bdc2bb4197e35713361a6b0882db13 /lib/utils/pyexec.c
parent775ffdcc3b85178ac128f774a5a8f992fd637dca (diff)
lib/utils/pyexec: Add pyexec_file_if_exists() helper function.
It will only execute the script if it can be stat'd and is a file.
Diffstat (limited to 'lib/utils/pyexec.c')
-rw-r--r--lib/utils/pyexec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/utils/pyexec.c b/lib/utils/pyexec.c
index f4e6856e5..946a97a00 100644
--- a/lib/utils/pyexec.c
+++ b/lib/utils/pyexec.c
@@ -541,6 +541,14 @@ int pyexec_file(const char *filename) {
return parse_compile_execute(filename, MP_PARSE_FILE_INPUT, EXEC_FLAG_SOURCE_IS_FILENAME);
}
+int pyexec_file_if_exists(const char *filename) {
+ mp_import_stat_t stat = mp_import_stat(filename);
+ if (stat != MP_IMPORT_STAT_FILE) {
+ return 1; // success (no file is the same as an empty file executing without fail)
+ }
+ return pyexec_file(filename);
+}
+
#if MICROPY_MODULE_FROZEN
int pyexec_frozen_module(const char *name) {
void *frozen_data;