Browse Source

scheme: Add test files with schema

Serj Kalichev 3 years ago
parent
commit
bfce2a3627
4 changed files with 255 additions and 130 deletions
  1. 1 129
      bin/klishd/klishd.c
  2. 128 0
      bin/klishd/sch.c
  3. 125 0
      bin/klishd/sch_test.c
  4. 1 1
      klish/kscheme/ischeme.c

+ 1 - 129
bin/klishd/klishd.c

@@ -38,135 +38,7 @@
 
 #include "private.h"
 
-ischeme_t sch = {
-
- PTYPE_LIST
-
-  PTYPE {
-   .name = "ptype1",
-   .help = "help1",
-
-   ACTION_LIST
-
-    ACTION {
-     .sym = "internal",
-     .script = "cat /etc/passwd",
-    },
-
-    ACTION {
-     .sym = "internal",
-     .script = "cat /etc/group",
-    },
-
-   END_ACTION_LIST,
-  },
-
-    PTYPE {
-      .name = "ptype2",
-      .help = "help2",
-    },
-
-  END_PTYPE_LIST,
-
-  VIEW_LIST
-
-    VIEW {
-      .name = "view1",
-      COMMAND_LIST
-
-        COMMAND {
-          .name = "command1",
-          .help = "help1",
-        },
-
-        COMMAND {
-          .name = "command2",
-          .help = "help1",
-        },
-
-        COMMAND {
-          .name = "command3",
-          .help = "help1",
-        },
-
-      END_COMMAND_LIST,
-    },
-
-    VIEW {
-      .name = "view2",
-    },
-
-    VIEW {
-      .name = "view1",
-      COMMAND_LIST
-
-        COMMAND {
-          .name = "command4",
-          .help = "help1",
-        },
-
-        COMMAND {
-          .name = "command4",
-          .help = "help1",
-
-   PARAM_LIST
-    PARAM {
-     .name = "param1",
-     .help = "helpparam1",
-     .ptype = "ptype1",
-    },
-    PARAM {
-     .name = "param2",
-     .help = "helpparam2",
-     .ptype = "ptype2",
-   PARAM_LIST
-    PARAM {
-     .name = "param3",
-     .help = "helpparam1",
-     .ptype = "ptype1",
-    },
-    PARAM {
-     .name = "param4",
-     .help = "helpparam2",
-     .ptype = "ptype2",
-
-
-    },
-
-   END_PARAM_LIST,
-
-
-    },
-
-   END_PARAM_LIST,
-
-   ACTION_LIST
-
-    ACTION {
-     .sym = "internal",
-     .script = "cat /etc/passwd",
-    },
-
-    ACTION {
-     .sym = "internal",
-     .script = "cat /etc/group",
-    },
-
-   END_ACTION_LIST,
-
-
-
-        },
-
-      END_COMMAND_LIST,
-    },
-
-//    VIEW {
-//    },
-
-  END_VIEW_LIST,
-};
-
+#include "sch_test.c"
 
 // Local static functions
 static int create_listen_unix_sock(const char *path);

+ 128 - 0
bin/klishd/sch.c

@@ -0,0 +1,128 @@
+ischeme_t sch = {
+
+ PTYPE_LIST
+
+  PTYPE {
+   .name = "ptype1",
+   .help = "help1",
+
+   ACTION_LIST
+
+    ACTION {
+     .sym = "internal",
+     .script = "cat /etc/passwd",
+    },
+
+    ACTION {
+     .sym = "internal",
+     .script = "cat /etc/group",
+    },
+
+   END_ACTION_LIST,
+  },
+
+  PTYPE {
+   .name = "ptype2",
+   .help = "help2",
+  },
+
+ END_PTYPE_LIST,
+
+ VIEW_LIST
+
+  VIEW {
+   .name = "view1",
+
+   COMMAND_LIST
+
+    COMMAND {
+     .name = "command1",
+     .help = "help1",
+    },
+
+    COMMAND {
+     .name = "command2",
+     .help = "help1",
+    },
+
+    COMMAND {
+     .name = "command3",
+     .help = "help1",
+    },
+
+   END_COMMAND_LIST,
+  },
+
+  VIEW {
+   .name = "view2",
+  },
+
+  VIEW {
+   .name = "view1",
+
+   COMMAND_LIST
+
+    COMMAND {
+     .name = "command4",
+     .help = "help1",
+    },
+
+    COMMAND {
+     .name = "command5",
+     .help = "help1",
+
+     PARAM_LIST
+
+      PARAM {
+       .name = "param1",
+       .help = "helpparam1",
+       .ptype = "ptype1",
+      },
+
+      PARAM {
+       .name = "param2",
+       .help = "helpparam2",
+       .ptype = "ptype2",
+
+       PARAM_LIST
+
+        PARAM {
+         .name = "param3",
+         .help = "helpparam1",
+         .ptype = "ptype1",
+        },
+
+        PARAM {
+         .name = "param4",
+         .help = "helpparam2",
+         .ptype = "ptype2",
+        },
+
+       END_PARAM_LIST,
+      },
+
+     END_PARAM_LIST,
+
+     ACTION_LIST
+
+      ACTION {
+       .sym = "internal",
+       .script = "cat /etc/passwd",
+      },
+
+      ACTION {
+       .sym = "internal",
+       .script = "cat /etc/group",
+      },
+
+     END_ACTION_LIST,
+    },
+
+   END_COMMAND_LIST,
+  },
+
+//VIEW {
+// },
+
+ END_VIEW_LIST,
+};

+ 125 - 0
bin/klishd/sch_test.c

@@ -0,0 +1,125 @@
+ischeme_t sch = {
+
+ PTYPE_LIST
+
+  PTYPE {
+   .name = "ptype1",
+   .help = "help1",
+
+   ACTION_LIST
+
+    ACTION {
+     .sym = "internal",
+     .script = "cat /etc/passwd",
+    },
+
+    ACTION {
+     .sym = "internal",
+     .script = "cat /etc/group",
+    },
+
+   END_ACTION_LIST,
+  },
+
+  PTYPE {
+   .name = "ptype2",
+   .help = "help2",
+  },
+
+ END_PTYPE_LIST,
+
+ VIEW_LIST
+
+  VIEW {
+   .name = "view1",
+
+   COMMAND_LIST
+
+    COMMAND {
+     .name = "command1",
+     .help = "help1",
+    },
+
+    COMMAND {
+     .name = "command2",
+     .help = "help1",
+    },
+
+    COMMAND {
+     .name = "command3",
+     .help = "help1",
+    },
+
+   END_COMMAND_LIST,
+  },
+
+  VIEW {
+   .name = "view2",
+  },
+
+  VIEW {
+   .name = "view1",
+
+   COMMAND_LIST
+
+    COMMAND {
+     .name = "command4",
+     .help = "help1",
+    },
+
+    COMMAND {
+     .name = "command5",
+     .help = "help1",
+
+     PARAM_LIST
+
+      PARAM {
+       .name = "param1",
+       .help = "helpparam1",
+       .ptype = "ptype1",
+      },
+
+      PARAM {
+       .name = "param2",
+       .help = "helpparam2",
+       .ptype = "ptype2",
+
+       PARAM_LIST
+
+        PARAM {
+         .name = "param3",
+         .help = "helpparam1",
+         .ptype = "ptype1",
+        },
+
+        PARAM {
+         .name = "param4",
+         .help = "helpparam2",
+         .ptype = "ptype2",
+        },
+
+       END_PARAM_LIST,
+      },
+
+     END_PARAM_LIST,
+
+     ACTION_LIST
+
+      ACTION {
+       .sym = "internal",
+       .script = "cat /etc/passwd",
+      },
+
+      ACTION {
+       .sym = "internal",
+       .script = "cat /etc/group",
+      },
+
+     END_ACTION_LIST,
+    },
+
+   END_COMMAND_LIST,
+  },
+
+ END_VIEW_LIST,
+};

+ 1 - 1
klish/kscheme/ischeme.c

@@ -56,7 +56,7 @@ char *ischeme_to_text(const ischeme_t *ischeme, int level)
 			faux_str_free(tmp);
 		}
 
-		tmp = faux_str_sprintf("%*cEND_VIEW_LIST\n", level + 1, ' ');
+		tmp = faux_str_sprintf("%*cEND_VIEW_LIST,\n", level + 1, ' ');
 		faux_str_cat(&str, tmp);
 		faux_str_free(tmp);
 	}