diff options
author | Victor Toso <me@victortoso.com> | 2016-03-02 22:54:13 +0100 |
---|---|---|
committer | Victor Toso <me@victortoso.com> | 2016-03-11 12:38:10 +0100 |
commit | fc9cfe1dc167c6a7b843b91786e9d94b3d0b94a5 (patch) | |
tree | c8de876e832b1f1ba6d50f095b760446298794f2 | |
parent | fa5539b92f4df721f24edff0da3c8bed17892fcc (diff) |
lua-factory: warn on certain mistakes in the source table
This is a good way to pinpoint simple mistakes when creating the global
source table
https://bugzilla.gnome.org/show_bug.cgi?id=732879
-rw-r--r-- | src/lua-factory/grl-lua-factory.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lua-factory/grl-lua-factory.c b/src/lua-factory/grl-lua-factory.c index 426eb3b..193008c 100644 --- a/src/lua-factory/grl-lua-factory.c +++ b/src/lua-factory/grl-lua-factory.c @@ -1405,6 +1405,14 @@ lua_plugin_source_all_keys (lua_State *L, supported_media = GRL_SUPPORTED_MEDIA_IMAGE; else if (g_strcmp0 (key_name, "all") == 0) supported_media = GRL_SUPPORTED_MEDIA_ALL; + + if (supported_media == GRL_SUPPORTED_MEDIA_NONE) { + GRL_WARNING ("(%s) value '%s' is not supported on %s.type ", + source_id, key_name, LUA_SOURCE_RESOLVE_KEYS); + } + } else { + GRL_WARNING ("(%s) expecting string on %s.type but got instead %s", source_id, + LUA_SOURCE_RESOLVE_KEYS, lua_typename (L, lua_type (L, -1))); } lua_pop (L, 1); @@ -1412,6 +1420,9 @@ lua_plugin_source_all_keys (lua_State *L, /* check required table field */ *resolve_keys = keys_table_array_to_list (L, LUA_REQUIRED_TABLE, registry, source_id); + } else if (!lua_isnil (L, -1)) { + GRL_WARNING ("(%s) expecting table on %s but got instead %s", source_id, + LUA_SOURCE_RESOLVE_KEYS, lua_typename (L, lua_type (L, -1))); } lua_pop (L, 1); @@ -1441,7 +1452,17 @@ lua_plugin_source_all_keys (lua_State *L, } g_list_free_full (table_list, g_free); + if (g_hash_table_size (htable) == 0) { + GRL_WARNING ("(%s) at %s - no valid config-keys on %s and %s", source_id, + LUA_SOURCE_CONFIG_KEYS, LUA_REQUIRED_TABLE, LUA_OPTIONAL_TABLE); + g_hash_table_destroy (htable); + htable = NULL; + } + *config_keys = htable; + } else if (!lua_isnil (L, -1)) { + GRL_WARNING ("(%s) expecting table on %s but got instead %s", source_id, + LUA_SOURCE_CONFIG_KEYS, lua_typename (L, lua_type (L, -1))); } lua_pop (L, 1); |