Пример #1
0
int nsh_execapp(FAR struct nsh_vtbl_s *vtbl, FAR const char *cmd,
                FAR char *argv[])
{
#ifndef CONFIG_APPS_BINDIR
   FAR const char * name;
#endif
   int ret = OK;

   /* Try to find command within pre-built application list. */

   ret = exec_namedapp(cmd, argv);
   if (ret < 0)
     {
       int err = -errno;
#ifndef CONFIG_APPS_BINDIR
       int i;
       
       /* On failure, list the set of available built-in commands */

       nsh_output(vtbl, "Builtin Apps: ");
       for (i = 0; (name = namedapp_getname(i)) != NULL; i++)
         {
           nsh_output(vtbl, "%s ", name);
         }
       nsh_output(vtbl, "\nand type 'help' for more NSH commands.\n\n");

       /* If the failing command was '?', then do not report an error */
       
       if (strcmp(cmd, "?") != 0)
         {
           return err;
         }

       return OK;
#else
       return err;
#endif
     }

#ifdef CONFIG_SCHED_WAITPID
   if (vtbl->np.np_bg == false)
     {
       waitpid(ret, NULL, 0);
     }
   else
#endif
     {
       struct sched_param param;
       sched_getparam(0, &param);
       nsh_output(vtbl, "%s [%d:%d]\n", cmd, ret, param.sched_priority);
     }

   return OK;
}
Пример #2
0
static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
{
#ifdef CONFIG_NSH_BUILTIN_APPS
  FAR const char *name;
  int i;

  /* List the set of available built-in commands */

  nsh_output(vtbl, "\nBuiltin Apps:\n");
  for (i = 0; (name = namedapp_getname(i)) != NULL; i++)
    {
      nsh_output(vtbl, "  %s\n", name);
    }
#endif
}
Пример #3
0
static int cmd_help(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
  const struct cmdmap_s *ptr;
#ifdef CONFIG_NSH_BUILTIN_APPS
   FAR const char * name;
   int i;
#endif

  nsh_output(vtbl, "NSH command forms:\n");
#ifndef CONFIG_NSH_DISABLEBG
  nsh_output(vtbl, "  [nice [-d <niceness>>]] <cmd> [> <file>|>> <file>] [&]\n");
#else
  nsh_output(vtbl, "  <cmd> [> <file>|>> <file>]\n");
#endif
#ifndef CONFIG_NSH_DISABLESCRIPT
  nsh_output(vtbl, "OR\n");
  nsh_output(vtbl, "  if <cmd>\n");
  nsh_output(vtbl, "  then\n");
  nsh_output(vtbl, "    [sequence of <cmd>]\n");
  nsh_output(vtbl, "  else\n");
  nsh_output(vtbl, "    [sequence of <cmd>]\n");
  nsh_output(vtbl, "  fi\n");
#endif
  nsh_output(vtbl, "Where <cmd> is one of:\n");
  for (ptr = g_cmdmap; ptr->cmd; ptr++)
    {
      if (ptr->usage)
        {
          nsh_output(vtbl, "  %s %s\n", ptr->cmd, ptr->usage);
        }
      else
        {
          nsh_output(vtbl, "  %s\n", ptr->cmd);
        }
    }

  /* List the set of available built-in commands */

#ifdef CONFIG_NSH_BUILTIN_APPS
   nsh_output(vtbl, "\nBuiltin Apps:\n");
    for (i = 0; (name = namedapp_getname(i)) != NULL; i++)
      {
        nsh_output(vtbl, "  %s\n", name);
      }
#endif

  return OK;
}