static int import_images(lua_State *L) { char* full_name= realpath(luaL_checkstring(L,-1), NULL); int result; if (g_file_test(full_name, G_FILE_TEST_IS_DIR)) { result =dt_film_import_blocking(full_name); if(result == 0) { free(full_name); return luaL_error(L,"error while importing"); } } else { dt_film_t new_film; dt_film_init(&new_film); char* dirname =g_path_get_dirname(full_name); result = dt_film_new(&new_film,dirname); if(result == 0) { free(full_name); dt_film_cleanup(&new_film); free(dirname); return luaL_error(L,"error while importing"); } result =dt_image_import(new_film.id,full_name,TRUE); free(dirname); dt_film_cleanup(&new_film); if(result == 0) { free(full_name); return luaL_error(L,"error while importing"); } } free(full_name); return 0; }
int dt_film_import(const char *dirname) { int v = dt_film_import_blocking(dirname,0); dt_control_signal_raise(darktable.signals , DT_SIGNAL_FILMROLLS_IMPORTED); return v; }