/* vi: set sw=4 ts=4:
 *
 * help.c - Show help for toybox
 *
 * Copyright 2007 Rob Landley <rob@landley.net>
 *
 * Not in SUSv3, but exists as a bash builtin.

USE_HELP(NEWTOY(help, "<1", TOYFLAG_BIN))

config HELP
	bool "help"
	default y
	help
	  usage: help [command]

	  Show usage information for toybox commands.
	  Run "toybox" with no arguments for a list of available commands.
*/
 

#include "toys.h"
#include "generated/help.h"

#undef NEWTOY
#undef OLDTOY
#define NEWTOY(name,opt,flags) help_##name "\0"
#define OLDTOY(name,oldname,opts,flags) "\xff" #oldname "\0"
static char *help_data =
#include "generated/newtoys.h"
;

void help_main(void)
{
	struct toy_list *t = toy_find(*toys.optargs);
	int i = t-toy_list;
	char *s = help_data;

	if (!t) error_exit("Unknown command '%s'", *toys.optargs);
	for (;;) {
		while (i--) s += strlen(s) + 1;
		if (*s != 255) break;
		i = toy_find(++s)-toy_list;
		s = help_data;
	}

	fprintf(toys.exithelp ? stderr : stdout, "%s", s);
}
