Newer
Older
#include "dap_common.h"
#include "libdap-app-cli-python.h"
#define LOG_TAG "libdap-app-cli-crypto"
/**
* @brief dap_app_cli_main_py
* @param self
* @param args
* @return
*/
PyObject* dap_app_cli_main_py(PyObject *self, PyObject *args)
{
(void) self;
char *l_app_name = NULL;
int l_argc = 0;
char ** l_argv = NULL;
PyObject* l_args_py = NULL;

alexey.stratulat
committed
if (!PyArg_ParseTuple(args, "ssO", &l_app_name,&l_socket_path, &l_args_py))
return NULL;
Py_ssize_t l_args_py_size = PyList_Size(l_args_py);

alexey.stratulat
committed
if (l_args_py_size > 1){
l_argc = (int)l_args_py_size;
l_argv = calloc(sizeof(char*), l_argc);

alexey.stratulat
committed
PyObject *l_obj_from_list = NULL;
for (int i = 0; i < l_argc; i++){
l_obj_from_list = PyList_GetItem(l_args_py, i);
if (PyUnicode_Check(l_obj_from_list)){
l_argv[i] = (char*)PyUnicode_AsUTF8(PyList_GetItem(l_args_py, i));
}
Py_XDECREF(l_obj_from_list);

alexey.stratulat
committed
return PyLong_FromLong((long)dap_app_cli_main(l_app_name, l_socket_path, l_argc, l_argv));
DAP_FREE(l_argv);