Ejemplo n.º 1
0
es_Interp* es_init_interp() {
  es_Interp *interp = NULL;

  interp = Jim_CreateInterp();
  Jim_RegisterCoreCommands(interp);
  Jim_InitStaticExtensions(interp);

  // load scripts
  es_eval_tcl(interp,es_tcl_script_config);

  // register commands
  es_jim_register_commands(interp);

  return interp;
}
Ejemplo n.º 2
0
es_Status es_rcontrol_run_tcl(es_TCPMessage *msg, es_TCPStream *responseStream) {
  static es_Interp *interp = NULL;

  if( interp == NULL ) {
    interp = es_get_interp();
  }

  char *path = malloc(msg->len+1);
  STRLCPY(path,msg->data,msg->len+1);
  char buf[500];
  snprintf(buf,500,"source {%s}",path);

  es_Status rc = es_eval_tcl(interp,buf);
  if( rc != ES_OK ) {
    const char *errmsg = es_tcl_last_result(interp);
    es_rcontrol_send_error(responseStream,errmsg);
    return ES_TCL_ERROR;
  }
  else {
    es_rcontrol_send_ok(responseStream,TCPMSG_ES_RUNTCL);
    return ES_OK;
  }
}