blob: 071348fa39551724ef4d81a1b7992c35661d23fb [file] [log] [blame]
Radek Krejcie9f13b12020-11-09 17:42:04 +01001/**
2 * @file cmd.h
3 * @author Michal Vasko <mvasko@cesnet.cz>
4 * @author Radek Krejci <rkrejci@cesnet.cz>
5 * @brief libyang's yanglint tool commands header
6 *
7 * Copyright (c) 2015-2020 CESNET, z.s.p.o.
8 *
9 * This source code is licensed under BSD 3-Clause License (the "License").
10 * You may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * https://opensource.org/licenses/BSD-3-Clause
14 */
15
16#ifndef COMMANDS_H_
17#define COMMANDS_H_
18
19#include "libyang.h"
20
21/**
22 * @brief command information
23 */
24typedef struct {
25 char *name; /* User printable name of the function. */
Michal Vasko26bbb272022-08-02 14:54:33 +020026
Radek Krejcie9f13b12020-11-09 17:42:04 +010027 void (*func)(struct ly_ctx **ctx, const char *); /* Function to call to do the command. */
28 void (*help_func)(void); /* Display command help. */
29 char *helpstring; /* Documentation for this function. */
aPiecek15cc4cf2023-04-17 15:23:21 +020030 char *optstring; /* Option characters used in function getopt_long. */
Radek Krejcie9f13b12020-11-09 17:42:04 +010031} COMMAND;
32
33/**
34 * @brief The list of available commands.
35 */
36extern COMMAND commands[];
37
aPiecek15cc4cf2023-04-17 15:23:21 +020038/**
39 * @brief Index for global variable ::commands.
40 */
41enum COMMAND_INDEX {
42 CMD_HELP = 0,
43 CMD_ADD,
44 CMD_LOAD,
45 CMD_PRINT,
46 CMD_DATA,
47 CMD_LIST,
48 CMD_FEATURE,
49 CMD_SEARCHPATH,
50 CMD_CLEAR,
51 CMD_VERB,
52#ifndef NDEBUG
53 CMD_DEBUG,
54#endif
55};
56
Radek Krejcie9f13b12020-11-09 17:42:04 +010057/* cmd_add.c */
58void cmd_add(struct ly_ctx **ctx, const char *cmdline);
59void cmd_add_help(void);
60
61/* cmd_clear.c */
62void cmd_clear(struct ly_ctx **ctx, const char *cmdline);
63void cmd_clear_help(void);
64
65/* cmd_data.c */
66void cmd_data(struct ly_ctx **ctx, const char *cmdline);
67void cmd_data_help(void);
68
69/* cmd_list.c */
70void cmd_list(struct ly_ctx **ctx, const char *cmdline);
71void cmd_list_help(void);
72
Michal Vasko538be422021-10-19 14:06:59 +020073/* cmd_feature.c */
74void cmd_feature(struct ly_ctx **ctx, const char *cmdline);
75void cmd_feature_help(void);
76
Radek Krejcie9f13b12020-11-09 17:42:04 +010077/* cmd_load.c */
78void cmd_load(struct ly_ctx **ctx, const char *cmdline);
79void cmd_load_help(void);
80
81/* cmd_print.c */
82void cmd_print(struct ly_ctx **ctx, const char *cmdline);
83void cmd_print_help(void);
84
85/* cmd_searchpath.c */
86void cmd_searchpath(struct ly_ctx **ctx, const char *cmdline);
87void cmd_searchpath_help(void);
88
89#endif /* COMMANDS_H_ */