blob: ee3729d7bf2f31f052face22b6c81d2b76a70f83 [file] [log] [blame]
Denys Vlasenkoacabf8f2009-10-02 01:10:32 +02001/* vi: set sw=4 ts=4: */
2/*
3 * Copyright (C) 2009 Denys Vlasenko.
4 *
5 * Licensed under GPLv2, see file LICENSE in this tarball for details.
6 */
7#include <unistd.h>
8#include <stdint.h>
9#include <string.h>
10#include <stdio.h>
11
12/* Just #include "autoconf.h" doesn't work for builds in separate
13 * object directory */
14#include "autoconf.h"
15
16#define SKIP_applet_main
17#define ALIGN1 /* nothing, just to placate applet_tables.h */
18#define ALIGN2 /* nothing, just to placate applet_tables.h */
19#include "applet_tables.h"
20
21/* Since we can't use platform.h, have to do this again by hand: */
22#if ENABLE_NOMMU
23# define BB_MMU 0
24# define USE_FOR_NOMMU(...) __VA_ARGS__
25# define USE_FOR_MMU(...)
26#else
27# define BB_MMU 1
28# define USE_FOR_NOMMU(...)
29# define USE_FOR_MMU(...) __VA_ARGS__
30#endif
31
32static const char usage_messages[] = ""
33#define MAKE_USAGE
34#include "usage.h"
35#include "applets.h"
36;
37
38int main(void)
39{
40 const char *names;
41 const char *usage;
42 int col, len2;
43
44 col = 0;
45 names = applet_names;
46 while (*names) {
47 len2 = strlen(names) + 2;
48 if (col >= 76 - len2) {
49 printf(",\n");
50 col = 0;
51 }
52 if (col == 0) {
53 col = 6;
54 printf("\t");
55 } else {
56 printf(", ");
57 }
58 printf(names);
59 col += len2;
60 names += len2 - 1;
61 }
62 printf("\n\n");
63
64 printf("=head1 COMMAND DESCRIPTIONS\n\n");
65 printf("=over 4\n\n");
66
67 names = applet_names;
68 usage = usage_messages;
Denys Vlasenkof2289132009-10-02 01:21:31 +020069 while (*names) {
Denys Vlasenkoacabf8f2009-10-02 01:10:32 +020070 if (*names >= 'a' && *names <= 'z'
71 && *usage != NOUSAGE_STR[0]
72 ) {
73 printf("=item B<%s>\n\n", names);
Denys Vlasenkof2289132009-10-02 01:21:31 +020074 if (*usage)
75 printf("%s %s\n\n", names, usage);
76 else
77 printf("%s\n\n", names);
Denys Vlasenkoacabf8f2009-10-02 01:10:32 +020078 }
79 names += strlen(names) + 1;
80 usage += strlen(usage) + 1;
81 }
82 return 0;
83}
84
85/* TODO: we used to make options bold with B<> and output an example too:
86
87=item B<cat>
88
89cat [B<-u>] [FILE]...
90
91Concatenate FILE(s) and print them to stdout
92
93Options:
94 -u Use unbuffered i/o (ignored)
95
96Example:
97 $ cat /proc/uptime
98 110716.72 17.67
99
100*/