sr_load.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <faux/faux.h>
  4. #include <faux/str.h>
  5. #include <faux/file.h>
  6. #include <faux/argv.h>
  7. #include <sysrepo.h>
  8. #include <sysrepo/xpath.h>
  9. #include "pline.h"
  10. int main(int argc, char **argv)
  11. {
  12. int ret = -1;
  13. int err = SR_ERR_OK;
  14. sr_conn_ctx_t *conn = NULL;
  15. sr_session_ctx_t *sess = NULL;
  16. faux_file_t *file = NULL;
  17. char *line = NULL;
  18. pline_opts_t opts;
  19. err = sr_connect(SR_CONN_DEFAULT, &conn);
  20. if (err) {
  21. fprintf(stderr, "Error: Can't connect to sysrepo\n");
  22. goto out;
  23. }
  24. err = sr_session_start(conn, SR_DS_RUNNING, &sess);
  25. if (err) {
  26. fprintf(stderr, "Error: Can't start session\n");
  27. goto out;
  28. }
  29. file = faux_file_fdopen(STDIN_FILENO);
  30. if (!file) {
  31. fprintf(stderr, "Error: Can't open stdin\n");
  32. goto out;
  33. }
  34. pline_opts_init(&opts);
  35. while ((line = faux_file_getline(file))) {
  36. pline_t *pline = NULL;
  37. faux_argv_t *args = NULL;
  38. args = faux_argv_new();
  39. faux_argv_parse(args, line);
  40. pline = pline_parse(sess, args, &opts);
  41. faux_argv_free(args);
  42. if (!pline || pline->invalid) {
  43. fprintf(stderr, "Invalid line: %s\n", line);
  44. } else {
  45. pline_debug(pline);
  46. printf("pline\n");
  47. // pline_print_completions(pline, BOOL_TRUE, PT_COMPL_ALL);
  48. }
  49. pline_free(pline);
  50. faux_str_free(line);
  51. }
  52. /*
  53. faux_argv_t *args = faux_argv_new();
  54. faux_argv_parse(args, argv[1]);
  55. faux_argv_del_continuable(args);
  56. pline = pline_parse(sess, args, 0);
  57. faux_argv_free(args);
  58. pline_debug(pline);
  59. pline_print_completions(pline, BOOL_TRUE, PT_COMPL_ALL);
  60. pline_free(pline);
  61. */
  62. ret = 0;
  63. out:
  64. faux_file_close(file);
  65. sr_disconnect(conn);
  66. argc = argc;
  67. argv = argv;
  68. return ret;
  69. }