提交 645ad4cf 编写于 作者: M Mupceet

shell 优化

Signed-off-by: NMupceet <laiguizhong@huawei.com>
上级 af7c0c13
......@@ -67,7 +67,7 @@ static int bootchartCmdStop(BShellHandle shell, int argc, char **argv)
}
MODULE_CONSTRUCTOR(void)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"bootchart", bootchartCmdEnable, "bootchart enable", "bootchart enable", "bootchart enable"},
{"bootchart", bootchartCmdDisable, "bootchart disable", "bootchart disable", "bootchart disable"},
{"bootchart", bootchartCmdStart, "bootchart start", "bootchart start", "bootchart start"},
......
......@@ -38,7 +38,7 @@ static int main_cmd(BShellHandle shell, int argc, char **argv)
MODULE_CONSTRUCTOR(void)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"dump_service", main_cmd, "dump one service info by serviceName", "dump_service serviceName", NULL},
{"dump_service", main_cmd, "dump all services info", "dump_service all", NULL},
};
......
......@@ -219,7 +219,7 @@ static int main_cmd(BShellHandle shell, int argc, char **argv)
MODULE_CONSTRUCTOR(void)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{
(char *)"misc_daemon", main_cmd, (char *)"write start logo",
(char *)"misc_daemon --write_logo xxx.rgb", (char *)"misc_daemon --write_logo"
......
......@@ -428,7 +428,7 @@ static int32_t BShellParamCmdShell(BShellHandle shell, int32_t argc, char *argv[
static int32_t BShellParamCmdRegForShell(BShellHandle shell)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"ls", BShellParamCmdLs, "display system parameter", "ls [-r] [name]", NULL},
{"get", BShellParamCmdGet, "get system parameter", "get [name]", NULL},
{"set", BShellParamCmdSet, "set system parameter", "set name value", NULL},
......@@ -446,7 +446,7 @@ static int32_t BShellParamCmdRegForShell(BShellHandle shell)
static int32_t BShellParamCmdRegForIndepent(BShellHandle shell)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"param", BShellParamCmdLs, "display system parameter", "param ls [-r] [name]", "param ls"},
{"param", BShellParamCmdGet, "get system parameter", "param get [name]", "param get"},
{"param", BShellParamCmdSet, "set system parameter", "param set name value", "param set"},
......
......@@ -183,7 +183,7 @@ static int main_cmd(BShellHandle shell, int argc, char **argv)
MODULE_CONSTRUCTOR(void)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{
(char *)"sandbox", main_cmd, (char *)"enter service sandbox",
(char *)"sandbox -s service_name",
......
......@@ -68,7 +68,7 @@ static int main_cmd(BShellHandle shell, int argc, char **argv)
MODULE_CONSTRUCTOR(void)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"service_control", main_cmd, "stop service", "service_control stop servicename", "service_control stop"},
{"service_control", main_cmd, "start service", "service_control start servicename", "service_control start"},
{"stop_service", main_cmd, "stop service", "stop_service servicename", ""},
......
......@@ -94,7 +94,7 @@ int BShellEnvInit(BShellHandle *handle, BShellInfo *info);
int BShellEnvStart(BShellHandle handle);
void BShellEnvDestory(BShellHandle handle);
int BShellEnvRegitsterCmd(BShellHandle handle, CmdInfo *cmdInfo);
int BShellEnvRegitsterCmd(BShellHandle handle, const CmdInfo *cmdInfo);
int BShellEnvSetParam(BShellHandle handle, const char *name, const char *desc, BShellParamType type, void *value);
const BShellParam *BShellEnvGetParam(BShellHandle handle, const char *name);
int BShellEnvRegisterKeyHandle(BShellHandle handle, uint8_t code, BShellkeyHandle keyHandle);
......
......@@ -95,26 +95,20 @@ static int32_t BShellCmdExit(BShellHandle handle, int32_t argc, char *argv[])
int32_t BShellEnvOutput(BShellHandle handle, char *fmt, ...)
{
BSH_CHECK(handle != NULL, return BSH_INVALID_PARAM, "Invalid shell env");
BShellEnv *shell = (BShellEnv *)handle;
va_list list;
va_list list;
va_start(list, fmt);
int len = vsnprintf_s(shell->data, sizeof(shell->data), sizeof(shell->data) - 1, fmt, list);
vfprintf(stdout, fmt, list);
va_end(list);
if (len <= 0) {
va_start(list, fmt);
vfprintf(stdout, fmt, list);
va_end(list);
return -1;
}
return BShellEnvOutputString(handle, shell->data);
(void)fflush(stdout);
return 0;
}
int32_t BShellEnvOutputString(BShellHandle handle, const char *string)
{
BSH_CHECK(handle != NULL, return BSH_INVALID_PARAM, "Invalid shell env");
BShellEnv *shell = (BShellEnv *)handle;
BSH_CHECK(shell->output != NULL, return BSH_INVALID_PARAM, "Invalid shell env");
return shell->output(string, strlen(string));
printf("%s", string);
(void)fflush(stdout);
return 0;
}
int32_t BShellEnvOutputPrompt(BShellHandle handle, const char *prompt)
......@@ -142,9 +136,8 @@ int32_t BShellEnvOutputPrompt(BShellHandle handle, const char *prompt)
void BShellEnvOutputByte(BShellHandle handle, char data)
{
BSH_CHECK(handle != NULL, return, "Invalid shell env");
BShellEnv *shell = (BShellEnv *)handle;
BSH_CHECK(shell->output != NULL, return, "Invalid shell env");
shell->output(&data, 1);
printf("%c", data);
(void)fflush(stdout);
}
void BShellEnvOutputResult(BShellHandle handle, int32_t result)
......@@ -152,7 +145,8 @@ void BShellEnvOutputResult(BShellHandle handle, int32_t result)
if (result == 0) {
return;
}
BShellEnvOutput(handle, "result: 0x%08x\r\n", result);
printf("result: 0x%08x\r\n", result);
(void)fflush(stdout);
}
static void BShellEnvOutputParam(BShellHandle handle, char *var)
......@@ -399,7 +393,6 @@ void BShellEnvLoop(BShellHandle handle)
{
BSH_CHECK(handle != NULL, return, "Invalid shell env");
BShellEnv *shell = (BShellEnv *)handle;
BSH_CHECK(shell->output != NULL, return, "Invalid shell output");
BSH_CHECK(shell->input != NULL, return, "Invalid shell input");
while (1) {
char data = 0;
......@@ -438,7 +431,7 @@ int BShellEnvStart(BShellHandle handle)
BShellEnvOutputString(handle, BShellEnvErrString(handle, BSH_SHELL_INFO));
BShellEnvOutputString(handle, shell->prompt);
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"exit", BShellCmdExit, "exit parameter shell", "exit"},
{"help", BShellCmdHelp, "help command", "help"}
};
......@@ -507,7 +500,7 @@ void BShellEnvDestory(BShellHandle handle)
free(shell);
}
int32_t BShellEnvRegitsterCmd(BShellHandle handle, CmdInfo *cmdInfo)
int32_t BShellEnvRegitsterCmd(BShellHandle handle, const CmdInfo *cmdInfo)
{
BSH_CHECK(handle != NULL, return BSH_INVALID_PARAM, "Invalid shell env");
BSH_CHECK(cmdInfo != NULL && cmdInfo->name != NULL, return BSH_INVALID_PARAM, "Invalid cmd name");
......@@ -741,8 +734,6 @@ const ParamInfo *BShellEnvGetReservedParam(BShellHandle handle, const char *name
int32_t BShellEnvDirectExecute(BShellHandle handle, int argc, char *args[])
{
BSH_CHECK(handle != NULL, return -1, "Invalid shell env");
BShellEnv *shell = (BShellEnv *)handle;
BSH_CHECK(shell->output != NULL, return -1, "Invalid shell output");
BShellCommand *cmd = BShellEnvGetCmd(handle, argc, args);
if (cmd != NULL) {
int32_t ret = cmd->executer(handle, argc - cmd->argStart, &args[cmd->argStart]);
......
......@@ -165,14 +165,14 @@ static int32_t BShellParamCmdUdidGet(BShellHandle shell, int32_t argc, char *arg
int32_t BShellCmdRegister(BShellHandle shell, int execMode)
{
if (execMode == 0) {
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"init", BShellParamCmdGroupTest, "init group test", "init group test [stage]", "init group test"},
};
for (size_t i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) {
BShellEnvRegitsterCmd(shell, &infos[i]);
}
} else {
CmdInfo infos[] = {
const CmdInfo infos[] = {
{"display", BShellParamCmdDisplay, "display system service", "display service", "display service"},
{"read", BShellParamCmdRead, "read system parameter", "read [start | stop]", ""},
{"watcher", BShellParamCmdWatch, "watcher system parameter", "watcher [name]", ""},
......
......@@ -90,7 +90,7 @@ static int32_t SysParaApiDumpCmd(BShellHandle shell, int32_t argc, char *argv[])
MODULE_CONSTRUCTOR(void)
{
CmdInfo infos[] = {
const CmdInfo infos[] = {
{(char *)"dump", SysParaApiDumpCmd, (char *)"dump api", (char *)"dump api", (char *)"dump api"},
};
for (size_t i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册