Commit Diff


commit - b71fa1a77a73ba55320a0e3c858a6b7d28e50bc1
commit + d8faca69a6339d21e97ceee4def69082b9c0acba
blob - 8f00d6917094b02f08320fb07101471980d8f696
blob + bfa2ba999c9bbcb8afdfb113fef6266e1d11e17d
--- src/CMakeLists.txt
+++ src/CMakeLists.txt
@@ -73,6 +73,23 @@ lua_source(lua_sources lua/compat.lua compat_lua)
 if (ENABLE_COMPRESS_MODULE)
     lua_source(lua_sources ${COMPRESS_MODULE_LUA_SOURCE} compress_lua)
 endif()
+if (ENABLE_ETCD_CLIENT)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/client/auth_http.lua etcd_client_client_auth_http_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/client/http.lua etcd_client_client_http_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/client/jsstream.lua etcd_client_client_jsstream_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/client/pool.lua etcd_client_client_pool_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/error/etcd.lua etcd_client_error_etcd_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/error/http.lua etcd_client_error_http_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/grpc_json.lua etcd_client_grpc_json_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/init.lua etcd_client_init_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/math.lua etcd_client_math_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/protocol.lua etcd_client_protocol_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/subscribe/auto.lua etcd_client_subscribe_auto_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/subscribe/once.lua etcd_client_subscribe_once_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/txn.lua etcd_client_txn_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/utils.lua etcd_client_utils_lua)
+    lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/version.lua etcd_client_version_lua)
+endif()
 
 # 3rd party lua sources
 lua_source(lua_sources ../third_party/luafun/fun.lua fun_lua)
blob - aba0160d1475bdbea681f735bb5d6f6376927c48
blob + c2d5dd53ec06ba6ce6d8763fa653240cc9f99844
--- src/lua/init.c
+++ src/lua/init.c
@@ -271,6 +271,23 @@ extern char minifio_lua[],
 	luarocks_util_lua[],
 	luarocks_core_util_lua[]
 #endif /* defined(EMBED_LUAROCKS) */
+#if ENABLE_ETCD_CLIENT
+	, etcd_client_client_auth_http_lua[],
+	etcd_client_client_http_lua[],
+	etcd_client_client_jsstream_lua[],
+	etcd_client_client_pool_lua[],
+	etcd_client_error_etcd_lua[],
+	etcd_client_error_http_lua[],
+	etcd_client_grpc_json_lua[],
+	etcd_client_init_lua[],
+	etcd_client_math_lua[],
+	etcd_client_protocol_lua[],
+	etcd_client_subscribe_auto_lua[],
+	etcd_client_subscribe_once_lua[],
+	etcd_client_txn_lua[],
+	etcd_client_utils_lua[],
+	etcd_client_version_lua[]
+#endif
 ;
 
 static const char *lua_modules[] = {
@@ -340,6 +357,27 @@ static const char *lua_modules[] = {
 	"internal.print", print_lua,
 	"internal.pairs", pairs_lua,
 	"luadebug", luadebug_lua,
+#if ENABLE_ETCD_CLIENT
+	/*
+	 * Module components order is important here: components that required
+	 * other modules must be loaded first.
+	 */
+	"etcd-client.version", etcd_client_version_lua,
+	"etcd-client.utils", etcd_client_utils_lua,
+	"etcd-client.math", etcd_client_math_lua,
+	"etcd-client.txn", etcd_client_txn_lua,
+	"etcd-client.grpc_json", etcd_client_grpc_json_lua,
+	"etcd-client.protocol", etcd_client_protocol_lua,
+	"etcd-client.subscribe.auto", etcd_client_subscribe_auto_lua,
+	"etcd-client.subscribe.once", etcd_client_subscribe_once_lua,
+	"etcd-client.error.etcd", etcd_client_error_etcd_lua,
+	"etcd-client.error.http", etcd_client_error_http_lua,
+	"etcd-client.client.pool", etcd_client_client_pool_lua,
+	"etcd-client.client.jsstream", etcd_client_client_jsstream_lua,
+	"etcd-client.client.http", etcd_client_client_http_lua,
+	"etcd-client.client.auth_http", etcd_client_client_auth_http_lua,
+	"etcd-client", etcd_client_init_lua,
+#endif
 	NULL
 };
 
blob - 7c5c79e592c9500470e8fb9d78ac8c2380793739
blob + 213c235e0a293c479590808369577780d80fcac6
--- src/trivia/config.h.cmake
+++ src/trivia/config.h.cmake
@@ -291,6 +291,7 @@
 #cmakedefine ENABLE_READ_VIEW 1
 #cmakedefine ENABLE_SECURITY 1
 #cmakedefine ENABLE_COMPRESS_MODULE 1
+#cmakedefine ENABLE_ETCD_CLIENT 1
 
 #cmakedefine EXPORT_LIBCURL_SYMBOLS 1